{"id":37038847,"url":"https://github.com/emreakdemir/herokit","last_synced_at":"2026-01-14T04:36:57.912Z","repository":{"id":188503219,"uuid":"678866280","full_name":"emreakdemir/HeroKit","owner":"emreakdemir","description":"The HeroKit library, providing utility operations, offers a comprehensive set of extension methods for controlling, converting, and manipulating various data types.","archived":false,"fork":false,"pushed_at":"2025-06-30T10:34:11.000Z","size":103,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-01T00:59:53.843Z","etag":null,"topics":["csharp","dotnet","dotnet-core","dotnet7","extensions","helpers-library"],"latest_commit_sha":null,"homepage":"https://herokit.emreakdemir.dev/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emreakdemir.png","metadata":{"files":{"readme":"README.TR.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-15T15:07:05.000Z","updated_at":"2025-06-30T10:34:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"addf418e-238f-4fb6-ac1f-d90f22d2eec3","html_url":"https://github.com/emreakdemir/HeroKit","commit_stats":null,"previous_names":["emreakdemir/herokit"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/emreakdemir/HeroKit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emreakdemir%2FHeroKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emreakdemir%2FHeroKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emreakdemir%2FHeroKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emreakdemir%2FHeroKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emreakdemir","download_url":"https://codeload.github.com/emreakdemir/HeroKit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emreakdemir%2FHeroKit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28409585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","dotnet","dotnet-core","dotnet7","extensions","helpers-library"],"created_at":"2026-01-14T04:36:57.204Z","updated_at":"2026-01-14T04:36:57.906Z","avatar_url":"https://github.com/emreakdemir.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HeroKit\n\nYardımcı işlemler sağlayan HeroKit kütüphanesi, farklı veri türlerini kontrol etmek, dönüştürmek ve manipüle etmek için kullanılan geniş bir dizi uzantı metodu sunmaktadır. Bu kapsamlı kütüphane, C# dilinde geliştirilen projelerde, dizilerden tarih-saat değerlerine, nesnelerden metinlere kadar birçok farklı veri tipi üzerinde çeşitli işlemler yapmak için tasarlanmıştır.\n\n## Kurulum \u0026 Kullanım\n\nAşağıda, bu kütüphanenin nasıl kullanılacağına dair örnekler bulabilirsiniz:\n\n1. Projeye HeroKit kütüphanesini ekleyin:\n    - Projeye NuGet Paket Yöneticisi üzerinden eklemek için NuGet Package Manager Console'ı açın.\n    - Aşağıdaki komutu girerek HeroKit kütüphanesini projenize ekleyin:\n      ```\n      Install-Package HeroKit\n      ```\n\n2. Projede ilgili namespace ifadelerini eklemeyi unutmayın:\n    - Örneğin, dizilerle ilgili işlemler yapacaksanız, ilgili sınıfın namespace ifadesini projenizin başına ekleyin (`using HeroKit.Arrays;`).\n\n3. Uzantı metotlarını kullanarak işlemleri gerçekleştirin:\n    - Dizilerle ilgili işlemler için `ArrayControlExtensions`, `ArrayConversionExtensions`, `ArrayManipulationExtensions` gibi sınıflar ve bu sınıflardaki metotlar kullanılabilir.\n    - Tarih ve saat biçimlemesi için `DateTimeFormattingExtensions` sınıfındaki metotları kullanabilirsiniz.\n    - Nesne kontrolü ve dönüşümleri için `ObjectControlExtensions` ve `ObjectConversionExtensions` sınıflarını kullanabilirsiniz.\n    - String işlemleri için `StringControlExtensions`, `StringConversionExtensions`, ve `StringManipulationExtensions` sınıfları kullanılabilir.\n    - Tür kontrolü ve dönüşümleri için `TypeControlExtensions` sınıfını kullanabilirsiniz.\n\n\n## İçerik\n\n- [ArrayControlExtensions](#arraycontrolextensions)\n- [ArrayConversionExtensions](#arrayconversionextensions)\n- [ArrayManipulationExtensions](#arraymanipulationextensions)\n- [AssemblyExtensions](#assemblyextensions)\n- [BooleanControlExtensions](#booleancontrolextensions)\n- [BooleanConversionExtensions](#booleanconversionextensions)\n- [DateTimeFormattingExtensions](#datetimeformattingextensions)\n- [ObjectControlExtensions](#objectcontrolextensions)\n- [ObjectConversionExtensions](#objectconversionextensions)\n- [StringControlExtensions](#stringcontrolextensions)\n- [StringConversionExtensions](#stringconversionextensions)\n- [StringManipulationExtensions](#stringmanipulationextensions)\n- [TypeControlExtensions](#typecontrolextensions)\n- [TypesExtensions](#typesextensions)\n\n\n## `ArrayControlExtensions`\n\nBu sınıf, dizi (array) türü üzerinde değer kontrolü yapmak için uzantı metotları içerir.\n\n### `IsNullOrEmpty\u003cT\u003e(this T[] array)`\n\nVerilen bir dizinin (array) null veya boş olup olmadığını kontrol eder.\n\n- `T`: Dizideki öğelerin türü.\n- `array`: Kontrol edilecek dizi.\n\nDönen değer: Dizi null veya boş ise true, aksi halde false.\n\n### `IsNotNullOrEmpty\u003cT\u003e(this T[] array)`\n\nVerilen bir dizinin (array) null veya boş olmadığını kontrol eder.\n\n- `T`: Dizideki öğelerin türü.\n- `array`: Kontrol edilecek dizi.\n\nDönen değer: Dizi null veya boş değilse true, aksi halde false.\n\n## Kullanım\n\nBu kütüphanedeki uzantı metotlarını kullanarak, dizilerin boş veya dolu olup olmadığını kontrol edebilirsiniz. Aşağıda kullanım örnekleri bulunmaktadır:\n\n```csharp\nusing HeroKit.Arrays;\n\nclass Program\n{\n    static void Main()\n    {\n        int[] emptyArray = new int[0];\n        int[] filledArray = new int[] { 1, 2, 3 };\n\n        bool isEmpty = emptyArray.IsNullOrEmpty(); // true\n        bool isNotEmpty = filledArray.IsNotNullOrEmpty(); // true\n    }\n}\n```\n\n## `ArrayConversionExtensions`\n\nBu sınıf, dizi (array) türündeki verileri çeşitli formatlara dönüştürmek için uzantı metotları içerir.\n\n### `ToList\u003cT\u003e(this T[] items, Func\u003cobject, T\u003e mapFunction)`\n\nVerilen bir diziyi (array) bir liste olarak dönüştürmek için kullanılır. Her bir öğe üzerine bir eşleme fonksiyonu uygulanır.\n\n- `T`: Dizideki öğelerin ve listenin türü.\n- `items`: Dönüştürülecek dizi.\n- `mapFunction`: Her bir öğe üzerine uygulanacak eşleme fonksiyonu.\n\nDönen değer: Dönüştürülmüş öğelerden oluşan liste.\n\n### `UrlTokenEncode(this byte[] array)`\n\nBir byte dizisini URL dostu bir stringe kodlar.\n\n- `array`: Kodlanacak byte dizisi.\n\nDönen değer: URL dostu kodlanmış string.\n\n## Kullanım\n\nBu kütüphanedeki uzantı metotlarını kullanarak, dizileri farklı veri tiplerine dönüştürebilir ve byte dizilerini URL dostu şekilde kodlayabilirsiniz. Aşağıda kullanım örnekleri bulunmaktadır:\n\n```csharp\nusing HeroKit.Arrays;\n\nclass Program\n{\n    static void Main()\n    {\n        int[] numbers = new int[] { 1, 2, 3, 4, 5 };\n        \n        List\u003cstring\u003e stringNumbers = numbers.ToList(num =\u003e num.ToString()); // [\"1\", \"2\", \"3\", \"4\", \"5\"]\n        \n        byte[] byteArray = new byte[] { 65, 66, 67 };\n        string encoded = byteArray.UrlTokenEncode(); // \"QkM=\"\n    }\n}\n```\n\n## `ArrayManipulationExtensions`\n\nBu sınıf, dizi (array) türündeki verilere manipülasyon işlemleri yapmak için uzantı metotları içerir.\n\n### `InsertItems\u003cT\u003e(this T[] array, IEnumerable\u003cT\u003e items)`\n\nBir numaralı indisten itibaren verilen bir enumerable koleksiyonu, diziye (array) öğe ekler.\n\n- `T`: Dizideki öğelerin türü.\n- `array`: Öğelerin ekleneceği dizi.\n- `items`: Eklenen öğelerin bulunduğu enumerable koleksiyonu.\n\nDönüş değeri yok.\n\n## Kullanım\n\nBu kütüphanedeki uzantı metotlarını kullanarak, dizilerde öğe ekleme işlemleri yapabilirsiniz. Aşağıda kullanım örnekleri bulunmaktadır:\n\n```csharp\nusing HeroKit.Arrays;\n\nclass Program\n{\n    static void Main()\n    {\n        int[] array = new int[5];\n        List\u003cint\u003e items = new List\u003cint\u003e { 1, 2, 3, 4, 5 };\n\n        array.InsertItems(items);\n        // Şimdi \"array\" içeriği: [1, 2, 3, 4, 5]\n    }\n}\n```\n\n## `AssemblyExtensions`\n\nBu sınıf, Assembly (derleme) türündeki değerlere yönelik uzantı metotları içerir.\n\n### `GetAttribute\u003cT\u003e(this Assembly callingAssembly)`\n\nÇağrılan Assembly'den (derleme) belirtilen niteliği (attribute) almak için kullanılır.\n\n- `T`: Alınacak nitelik (attribute) türü.\n- `callingAssembly`: Niteliğin alınacağı Assembly.\n\nDönen değer: Belirtilen nitelik (attribute) tipindeki öğe, bulunamazsa null.\n\n## Kullanım\n\nBu kütüphanedeki uzantı metotlarını kullanarak, Assembly türündeki değerlere yönelik işlemler yapabilirsiniz. Aşağıda kullanım örnekleri bulunmaktadır:\n\n```csharp\nusing System;\nusing HeroKit.Assemblies;\n\nclass Program\n{\n    static void Main()\n    {\n        var assembly = typeof(Program).Assembly;\n        \n        AssemblyTitleAttribute titleAttribute = assembly.GetAttribute\u003cAssemblyTitleAttribute\u003e();\n        if (titleAttribute != null)\n        {\n            string assemblyTitle = titleAttribute.Title; // Assembly başlığı\n        }\n    }\n}\n```\n\n## BooleanControlExtensions\n\nBu sınıf, Boolean (bool) türündeki değerler için uzantı yöntemlerini içerir.\n\n### `IsTrue(this bool? value)`\nBu uzantı yöntemi, bir boole (bool) değerinin boş olup olmadığını kontrol eder. Değer boş değilse ve true ise true döndürür; aksi takdirde false döndürür.\n\n### `IsFalse(this bool? value)`\nBu uzantı yöntemi, bir boole (bool) değerinin boş olup olmadığını kontrol eder. Değerin boş olup olmadığını ve true olup olmadığını belirlemek için IsTrue yöntemini kullanır. Değer boş değilse ve false ise true döndürür; aksi takdirde false döndürür.\n\n### `AllTrue(this IEnumerable\u003cbool\u003e values)`\nBu uzantı yöntemi, bir koleksiyondaki tüm boolean değerlerinin true olup olmadığını kontrol eder. Koleksiyondaki tüm değerlerin true olup olmadığını belirlemek için LINQ All yöntemini kullanır. Eğer öyleyse true döndürür; aksi takdirde false döndürür.\n\n### `AnyTrue(this IEnumerable\u003cbool\u003e values)`\nBu uzantı yöntemi, bir koleksiyondaki herhangi bir boolean değerinin true olup olmadığını kontrol eder. Koleksiyondaki en az bir değerin true olup olmadığını belirlemek için LINQ Any yöntemini kullanır. Böyle bir değer varsa true döndürür; aksi takdirde false döndürür.\n\n### `AllFalse(this IEnumerable\u003cbool\u003e values)`\nBu uzantı yöntemi, bir koleksiyondaki tüm boolean değerlerinin false olup olmadığını kontrol eder. LINQ All yöntemini ve negasyon (!) operatörünü kullanarak koleksiyondaki tüm değerlerin false olup olmadığını belirler. Eğer öyleyse true döndürür; aksi takdirde false döndürür.\n\n### `AnyFalse(this IEnumerable\u003cbool\u003e values)`\nBu uzantı yöntemi, bir koleksiyondaki herhangi bir boolean değerinin false olup olmadığını kontrol eder. LINQ Any yöntemini ve negasyon (!) operatörünü kullanarak koleksiyondaki en az bir değerin false olup olmadığını belirler. Böyle bir değer varsa true döndürür; aksi takdirde false döndürür.\n\n## Kullanım\n\nBu kütüphanedeki uzantı yöntemlerini kullanarak Boolean (bool) türündeki değerler üzerinde işlemler gerçekleştirebilirsiniz. Aşağıda kullanım örnekleri bulunmaktadır:\n\nusing HeroKit.Booleans;\n```csharp\n\nusing HeroKit.Booleans;\n\nclass Program\n{\n    static void Main(string[] args)\n    {\n        bool? nullableValue = true;\n        bool isNullableValueTrue = nullableValue.IsTrue(); // true döndürür\n\n        List\u003cbool\u003e boolList = new List\u003cbool\u003e { true, false, true };\n        bool allValuesTrue = boolList.AllTrue(); // false döndürür\n        bool anyValueTrue = boolList.AnyTrue(); // true döndürür\n\n        List\u003cbool\u003e anotherBoolList = new List\u003cbool\u003e { false, false, false };\n        bool allValuesFalse = anotherBoolList.AllFalse(); // true döndürür\n        bool anyValueFalse = anotherBoolList.AnyFalse(); // true döndürür\n    }\n}\n\n```\n\n## `BooleanConversionExtensions`\n\n## ToYesNo(this bool value)\n\nBu uzantı yöntemi, bir boolean değerini \"Evet\" veya \"Hayır\" dize temsiline dönüştürür. Eğer değer true ise \"Evet\" döner, aksi halde \"Hayır\" döner.\n\n## ToYesNo(this bool? value)\n\nBu uzantı yöntemi, bir boole değerini \"Evet\" veya \"Hayır\" dize temsiline dönüştürür. Eğer değer null değilse ve true ise \"Evet\" döner, aksi halde \"Hayır\" döner.\n\n## ToInt(this bool value)\n\nBu uzantı yöntemi, bir boolean değerini bir tamsayı temsiline dönüştürür. Değer true ise 1 döner, değer false ise 0 döner.\n\n## Kullanım\n\nBu sınıf tarafından sağlanan uzantı yöntemlerini kullanarak boolean değerler üzerinde kolayca dönüşümler yapabilirsiniz. İşte bazı örnekler:\n\n```csharp\nusing HeroKit.BooleanConversions;\n\nclass Program\n{\n    static void Main(string[] args)\n    {\n        bool deger1 = true;\n        string deger1EvetHayir = deger1.ToYesNo(); // \"Evet\" döner\n        int deger1Tamsayi = deger1.ToInt(); // 1 döner\n        \n        bool? deger2 = false;\n        string deger2EvetHayir = deger2.ToYesNo(); // \"Hayır\" döner\n        \n        // Null olabilen boolean dönüşümü\n        bool? deger3 = null;\n        string deger3EvetHayir = deger3.ToYesNo(); // \"Hayır\" döner\n    }\n}\n```\n\n## `DateTimeFormattingExtensions`\n\nBu sınıf, DateTime (tarih ve saat) türündeki değerlere yönelik uzantı metotları içerir.\n\n### `ToTrString(this DateTime datetime, string format = \"dd MMM yyyy, dddd\")`\n\nVerilen bir DateTime'i Türk kültürüne göre biçimlendirilmiş bir string olarak döndürür.\n\n- `datetime`: Biçimlendirilecek DateTime değeri.\n- `format`: Biçimlendirme şablonu. Varsayılan değer: \"dd MMM yyyy, dddd\".\n\nDönen değer: Türk kültürüne göre biçimlendirilmiş string.\n\n### `ToCultureString(this DateTime datetime, CultureInfo formatProvider, string format = \"dd MMM yyyy, dddd\")`\n\nVerilen bir DateTime'i belirtilen kültüre ve biçimlendirme şablonuna göre döndürür.\n\n- `datetime`: Biçimlendirilecek DateTime değeri.\n- `formatProvider`: Kültürü belirten format sağlayıcı.\n- `format`: Biçimlendirme şablonu. Varsayılan değer: \"dd MMM yyyy, dddd\".\n\nDönen değer: Biçimlendirilmiş string.\n\n### `AsDirectoryName(this DateTime datetime, string format = \"yyyy-MM-dd\")`\n\nVerilen bir DateTime'i dizin adı için uygun bir biçimde döndürür.\n\n- `datetime`: Biçimlendirilecek DateTime değeri.\n- `format`: Biçimlendirme şablonu. Varsayılan değer: \"yyyy-MM-dd\".\n\nDönen değer: Biçimlendirilmiş string.\n\n### `AsFileName(this DateTime datetime, string baseFileName = \"\")`\n\nVerilen bir DateTime'i dosya adı için uygun bir biçimde döndürür.\n\n- `datetime`: Biçimlendirilecek DateTime değeri.\n- `baseFileName`: Kullanılacak temel dosya adı.\n\nDönen değer: Biçimlendirilmiş dosya adı string'i.\n\n## Kullanım\n\nBu kütüphanedeki uzantı metotlarını kullanarak, DateTime türündeki değerleri farklı formatlara ve kültürlere göre biçimlendirebilirsiniz. Aşağıda kullanım örnekleri bulunmaktadır:\n\n```csharp\nusing System;\nusing HeroKit.DateTimes;\n\nclass Program\n{\n    static void Main()\n    {\n        DateTime now = DateTime.Now;\n        \n        string trFormatted = now.ToTrString(); // \"15 Ağu 2023, Pazartesi\"\n        \n        string customFormatted = now.ToCultureString(new CultureInfo(\"en-US\"), \"MMMM dd, yyyy\"); // \"August 15, 2023\"\n        \n        string directoryName = now.AsDirectoryName(); // \"2023-08-15\"\n        \n        string fileName = now.AsFileName(\"example\"); // \"example-2023-08-15-10-30-45\"\n    }\n}\n```\n\n## `ObjectControlExtensions`\n\nBu sınıf, Object (nesne) türündeki değerlere yönelik kontrol işlemleri yapmak için uzantı metotları içerir.\n\n### `IsNull(this object @object)`\n\nVerilen bir nesnenin (object) null olup olmadığını kontrol eder.\n\n- `object`: Kontrol edilecek nesne.\n\nDönen değer: Nesne null ise true, aksi halde false.\n\n### `IsNotNull(this object @object)`\n\nVerilen bir nesnenin (object) null olmadığını kontrol eder.\n\n- `object`: Kontrol edilecek nesne.\n\nDönen değer: Nesne null değilse true, aksi halde false.\n\n### `IsNumeric(this object value)`\n\nVerilen bir nesnenin (object) sayısal (numeric) olup olmadığını kontrol eder.\n\n- `value`: Kontrol edilecek nesne.\n\nDönen değer: Nesne sayısal ise true, aksi halde false.\n\n## Kullanım\n\nBu kütüphanedeki uzantı metotlarını kullanarak, Object türündeki değerleri kontrol edebilirsiniz. Aşağıda kullanım örnekleri bulunmaktadır:\n\n```csharp\nusing HeroKit.Objects;\n\nclass Program\n{\n    static void Main()\n    {\n        object obj = null;\n        bool isNull = obj.IsNull(); // true\n        \n        object notNullObj = new object();\n        bool isNotNull = notNullObj.IsNotNull(); // true\n        \n        object numericValue = 123;\n        bool isNumeric = numericValue.IsNumeric(); // true\n        \n        object nonNumericValue = \"Hello\";\n        bool isNonNumeric = nonNumericValue.IsNumeric(); // false\n    }\n}\n```\n\n## `ObjectConversionExtensions`\n\nBu sınıf, Object (nesne) türündeki değerleri belirtilen türe çevirmek için uzantı metotları içerir.\n\n### `ConvertTo\u003cT\u003e(this object source, T defaultValue = default)`\n\nVerilen bir nesneyi (object) belirtilen türe çevirir, isteğe bağlı olarak varsayılan değeri kullanır.\n\n- `T`: Dönüşümün hedef türü.\n- `source`: Çevrilecek nesne.\n- `defaultValue`: Dönüşüm başarısız olursa kullanılacak varsayılan değer. Varsayılan değer: `default` (varsayılan tür değeri).\n\nDönen değer: Nesnenin belirtilen türe çevrilmiş hali veya dönüşüm başarısız olursa varsayılan değer.\n\n## Kullanım\n\nBu kütüphanedeki uzantı metotlarını kullanarak, Object türündeki değerleri belirtilen türlere çevirebilirsiniz. Aşağıda kullanım örnekleri bulunmaktadır:\n\n```csharp\nusing HeroKit.Objects;\n\nclass Program\n{\n    static void Main()\n    {\n        object intValue = 123;\n        int convertedInt = intValue.ConvertTo\u003cint\u003e(); // 123\n        \n        object stringValue = \"456\";\n        int convertedStringInt = stringValue.ConvertTo\u003cint\u003e(); // 456\n        \n        object nonConvertibleValue = \"Hello\";\n        int defaultValue = 0;\n        int nonConvertibleInt = nonConvertibleValue.ConvertTo(defaultValue); // 0\n    }\n}\n```\n\n## `StringControlExtensions`\n\nBu sınıf, string (dize) türündeki değerlere yönelik kontrol ve manipülasyon işlemleri yapmak için uzantı metotları içerir.\n\n### `IsNullOrEmpty(this string value)`\n\nVerilen bir dizinin (string) boş veya null olup olmadığını kontrol eder.\n\n- `value`: Kontrol edilecek dize.\n\nDönen değer: Dize boş veya null ise true, aksi halde false.\n\n### `IsNotNullOrEmpty(this string value)`\n\nVerilen bir dizinin (string) boş veya null olmadığını kontrol eder.\n\n- `value`: Kontrol edilecek dize.\n\nDönen değer: Dize boş veya null değilse true, aksi halde false.\n\n### `IsNullOrEmpty(this string source, char splitValue)`\n\nVerilen bir dizinin (string) belirli bir ayırma değerinden oluşup oluşmadığını kontrol eder.\n\n- `source`: Kontrol edilecek dize.\n- `splitValue`: Ayırma değeri karakteri.\n\nDönen değer: Dize boş, null veya sadece ayırma değerinden oluşuyorsa true, aksi halde false.\n\n### `IsNotNullOrEmpty(this string source, char splitValue)`\n\nVerilen bir dizinin (string) belirli bir ayırma değerinden oluşmadığını kontrol eder.\n\n- `source`: Kontrol edilecek dize.\n- `splitValue`: Ayırma değeri karakteri.\n\nDönen değer: Dize boş, null veya sadece ayırma değerinden oluşmuyorsa true, aksi halde false.\n\n## Kullanım\n\nBu kütüphanedeki uzantı metotlarını kullanarak, string türündeki değerleri kontrol edebilir ve manipüle edebilirsiniz. Aşağıda kullanım örnekleri bulunmaktadır:\n\n```csharp\nusing HeroKit.Strings;\n\nclass Program\n{\n    static void Main()\n    {\n        string emptyString = \"\";\n        bool isEmpty = emptyString.IsNullOrEmpty(); // true\n        \n        string nonEmptyString = \"Hello\";\n        bool isNotEmpty = nonEmptyString.IsNotNullOrEmpty(); // true\n        \n        string splitString = \",\";\n        bool isSplitEmpty = splitString.IsNullOrEmpty(','); // true\n        \n        string nonSplitString = \"Hello,World\";\n        bool isNonSplitEmpty = nonSplitString.IsNotNullOrEmpty(','); // false\n    }\n}\n```\n\n## `StringConversionExtensions`\n\nBu sınıf, string (dize) türündeki değerleri dönüştürmek için uzantı metotları içerir.\n\n### `ToDecimal(this string @this, string numberDecimalSeperator = \",\", bool autoReplaceDotToSeperator = true)`\n\nVerilen bir dizeyi (string) ondalık sayıya dönüştürür.\n\n- `@this`: Ondalık sayıya dönüştürülecek dize.\n- `numberDecimalSeperator`: Ondalık ayırıcı karakteri. Varsayılan değer: `,`.\n- `autoReplaceDotToSeperator`: Otomatik olarak noktayı belirtilen ayıracıyla değiştirip değiştirmeyeceği.\n- Dönen değer: Dönüştürülen ondalık sayı.\n\n### `ToEnum\u003cT\u003e(this string value, T defaultValue = default)`\n\nVerilen bir diziyi (string) belirtilen enum türüne dönüştürür.\n\n- `T`: Enum türü.\n- `value`: Enuma dönüştürülecek dize.\n- `defaultValue`: Dönüşüm başarısız olursa kullanılacak varsayılan değer. Varsayılan değer: `default` (varsayılan tür değeri).\n\nDönen değer: Dönüştürülen enum değeri veya dönüşüm başarısız olursa varsayılan değer.\n\n## Kullanım\n\nBu kütüphanedeki uzantı metotlarını kullanarak, string türündeki değerleri dönüştürebilir ve manipüle edebilirsiniz. Aşağıda kullanım örnekleri bulunmaktadır:\n\n```csharp\nusing HeroKit.Strings;\n\nclass Program\n{\n    static void Main()\n    {\n        string decimalString = \"123,45\";\n        decimal convertedDecimal = decimalString.ToDecimal(); // 123.45\n        \n        string enumString = \"2\";\n        MyEnum enumValue = enumString.ToEnum(MyEnum.Default); // MyEnum.Value2\n    }\n}\n```\n\n## `StringManipulationExtensions`\n\nBu sınıf, string (dize) türündeki değerleri manipüle etmek ve biçimlendirmek için uzantı metotları içerir.\n\n### `ToSlug(this string value)`\n\nVerilen bir diziyi (string) URL dostu bir \"slug\" haline dönüştürür.\n\n- `value`: Dönüştürülecek dize.\n\nDönen değer: URL dostu \"slug\" dizesi.\n\n### `RemoveAccent(this string value)`\n\nVerilen bir diziden (string) aksanları (accent) kaldırır.\n\n- `value`: Aksanları kaldırılacak dize.\n\nDönen değer: Aksanları kaldırılmış dize.\n\n### `ClearTurkishChars(this string value)`\n\nVerilen bir dizide (string) Türkçe karakterleri aksanlı (accented) halleriyle değiştirir.\n\n- `value`: Türkçe karakterlerin değiştirileceği dize.\n\nDönen değer: Türkçe karakterleri değiştirilmiş dize.\n\n## Kullanım\n\nBu kütüphanedeki uzantı metotlarını kullanarak, string türündeki değerleri manipüle edebilir, biçimlendirebilir ve dönüştürebilirsiniz. Aşağıda kullanım örnekleri bulunmaktadır:\n\n```csharp\nusing HeroKit.Strings;\n\nclass Program\n{\n    static void Main()\n    {\n        string originalText = \"Merhaba Dünya!\";\n        string slug = originalText.ToSlug(); // merhaba-dunya\n    }\n}\n```\n\n## `TypeControlExtensions`\n\nBu sınıf, tür (type) değerleri üzerinde çeşitli kontrol işlemleri yapmak için uzantı metotları içerir.\n\n### `IsNullable(this Type type)`\n\nVerilen bir türün (type) Nullable tür (örneğin, int?) olup olmadığını kontrol eder.\n\n- `type`: Kontrol edilecek tür.\n\nDönen değer: Tür Nullable tür ise true, aksi halde false.\n\n### `IsGenericAssignableFrom(this Type toType, Type fromType, out Type[] genericArguments)`\n\nVerilen bir generic türün (type) başka bir türden atanabilir olup olmadığını ve gerekirse generic argümanları sağlar.\n\n- `toType`: Hedef generic tür.\n- `fromType`: Kaynak tür.\n- `genericArguments`: Atama mümkün ise generic argümanlar, aksi halde null.\n- Dönen değer: Atama mümkün ise true, aksi halde false.\n\n### `GetUnderlyingType(this Type type)`\n\nVerilen bir türün (type) nullable tür ise altında yatan non-nullable türünü alır.\n\n- `type`: İncelemek için tür.\n\nDönen değer: Eğer tür nullable tür ise altında yatan non-nullable türü, değilse aynı tür.\n\n### `IsDefaultValue\u003cT\u003e(this T value)`\n\nVerilen bir değerin, türünün varsayılan değeri olup olmadığını kontrol eder.\n\n- `value`: Varsayılan değeri kontrol edilecek değer.\n\nDönen değer: Değer türünün varsayılan değeri ise true, aksi halde false.\n\n## Kullanım\n\nBu kütüphanedeki uzantı metotlarını kullanarak, tür (type) değerleri üzerinde çeşitli kontrol işlemleri yapabilirsiniz. Aşağıda kullanım örnekleri bulunmaktadır:\n\n```csharp\nusing HeroKit.Types;\n\nclass Program\n{\n    static void Main()\n    {\n        Type nullableIntType = typeof(int?);\n        bool isNullable = nullableIntType.IsNullable(); // true\n        \n        Type genericListType = typeof(List\u003c\u003e);\n        Type genericArgument;\n        bool isGenericAssignable = genericListType.IsGenericAssignableFrom(typeof(List\u003cstring\u003e), out genericArgument); // true, genericArgument: string\n        \n        int value = 0;\n        bool isDefault = value.IsDefaultValue(); // true\n    }\n}\n```\n\n## `TypesExtensions`\n\nBu sınıf, tür (type) değerleri üzerinde çeşitli işlemler yapmak için uzantı metotları içerir.\n\n### `GetDefault(this Type type)`\n\nVerilen bir türün (type) varsayılan değerini alır.\n\n- `type`: Varsayılan değeri alınacak tür.\n- Dönen değer: Varsayılan değeri veya uygulanamıyorsa null.\n\n### `GetDefault\u003cT\u003e()`\n\nVerilen bir türün (type) varsayılan değerini alır.\n\n- Dönen değer: Varsayılan değeri.\n\n### `GetRealType(this Type type)`\n\nVerilen bir arayüzün veya soyut türün somut uygulama türünü alır.\n\n- `type`: İşlem yapılacak arayüz veya soyut tür.\n- Dönen değer: Somut uygulama türü veya bulunamazsa null.\n\n### `GetExtensionMethods(this Type type, Assembly extensionsAssembly, BindingFlags bindingFlags = BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)`\n\nVerilen bir türün (type) uzantı metotlarını belirtilen derlemeden alır.\n\n- `type`: Uzantı metotları alınacak tür.\n- `extensionsAssembly`: Uzantı metotlarının bulunduğu derleme.\n- `bindingFlags`: Metot görünürlüğünü kontrol etmek için kullanılacak BindingFlag'ler.\n- Dönen değer: Belirtilen tür için uzantı metotlarının koleksiyonu.\n\n### `GetExtensionMethod(this Type type, Assembly extensionsAssembly, string name)`\n\nVerilen bir türün (type) belirtilen adlı uzantı metotunu belirtilen derlemeden alır.\n\n- `type`: Uzantı metodu alınacak tür.\n- `extensionsAssembly`: Uzantı metodu bulunan derleme.\n- `name`: Uzantı metodu adı.\n- Dönen değer: Belirtilen adlı uzantı metodu için MethodInfo veya bulunamazsa null.\n\n### `GetExtensionMethod(this Type type, IEnumerable\u003cAssembly\u003e assemblies, string name)`\n\nVerilen bir türün (type) belirtilen adlı uzantı metotunu belirtilen derleme koleksiyonundan alır.\n\n- `type`: Uzantı metodu alınacak tür.\n- `assemblies`: Uzantı metodu bulunan derleme koleksiyonu.\n- `name`: Uzantı metodu adı.\n- Dönen değer: Belirtilen adlı uzantı metodu için MethodInfo veya bulunamazsa null.\n\n### `GetExtensionMethod(this Type type, Assembly extensionsAssembly, string name, Type[] types)`\n\nVerilen bir türün (type) belirtilen ad ve parametre türlerine sahip uzantı metotunu belirtilen derlemeden alır.\n\n- `type`: Uzantı metodu alınacak tür.\n- `extensionsAssembly`: Uzantı metodu bulunan derleme.\n- `name`: Uzantı metodu adı.\n- `types`: Uzantı metodu parametre türleri dizisi.\n- Dönen değer: Belirtilen ad ve parametre türlerine sahip uzantı metodu için MethodInfo veya bulunamazsa null.\n\n## Kullanım\n\nBu kütüphanedeki uzantı metotlarını kullanarak, tür (type) değerleri üzerinde çeşitli işlemler yapabilirsiniz. Aşağıda kullanım örnekleri bulunmaktadır:\n\n```csharp\nusing HeroKit.Types;\n\nclass Program\n{\n    static void Main()\n    {\n        Type intType = typeof(int);\n        object defaultInt = intType.GetDefault(); // 0\n\n        int defaultValue = TypesExtensions.GetDefault\u003cint\u003e(); // 0\n\n        Type interfaceType = typeof(IDisposable);\n        Type implementationType = interfaceType.GetRealType(); // System.IO.StreamReader\n\n        Assembly extensionsAssembly = Assembly.GetExecutingAssembly(); // Varsayılan derlemeyi kullanarak\n        MethodInfo extensionMethod = typeof(int).GetExtensionMethod(extensionsAssembly, \"IsDefaultValue\"); // MethodInfo\n\n    }\n}\n```\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femreakdemir%2Fherokit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femreakdemir%2Fherokit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femreakdemir%2Fherokit/lists"}