C# Nedir ?

C#, türü güçlü bir nesne yönelimli programlama dilidir. C# açık kaynak kodlu, basit, modern, esnek ve çok yönlüdür. Bu yazıda C# ‘ın ne olduğunu, C#’ ın neler yapabileceğini ve C# ‘nin C++ ve diğer programlama dillerinden ne kadar farklı olduğunu öğrenelim. Bilgisayar bilimlerinde bir programlama dili, yazılım programları yazmak için kullanılan bir dildir.  C#, Microsoft tarafından 2001 yılında geliştirilen ve piyasaya sürülen bir programlama dilidir. C#, günümüz geliştiricilerine yalnızca bugün işe yarayacak, aynı zamanda yıllarca uygulanabilir olacak yazılımlar oluşturmak için esneklik ve özellikler sağlayan basit, modern ve nesneye yönelik bir dildir. gelecek. C# dilinin temel özellikleri şunları içerir:

  1. Modern ve kolay
  2. Hızlı ve açık kaynak
  3. Çapraz platform
  4. Kasa
  5. Çok yönlü
  6. Gelişen

C# modern ve kolaydır

 C# basit, modern ve nesne yönelimli bir programlama dilidir. C# ‘ın amacı, sadece öğrenmesi kolay değil, aynı zamanda her türlü yazılım geliştirme için günümüzün modern işlevselliğini destekleyen bir programlama dili geliştirmekti. Programlama dillerinin geçmişine ve özelliklerine bakarsanız, her programlama dili o andaki belirli bir ihtiyacı çözmek için belirli bir amaç için tasarlanmıştır. Ancak C# dili, iş ve kuruluşların ihtiyaçlarını göz önünde bulundurmak için tasarlanmıştır. C# dili, işletmelerin tek bir programlama dili kullanarak her türlü yazılımı oluşturması için tasarlanmıştır. C#, modern yazılım geliştirmeyi desteklemek için işlevsellik sağlar. C#, Web, Mobil ve uygulama geliştirme ihtiyaçlarını destekler. C# tarafından desteklenen modern programlama dili özelliklerinden bazıları, jenerikler, değişken türleri, türlerin ve koleksiyonların otomatik olarak başlatılması, lambda ifadeleri, dinamik programlama, zaman uyumsuz programlama, tuplelar, desen eşleştirme, gelişmiş hata ayıklama ve istisna işleme ve daha fazlasıdır. C# dili sözdizimleri, C++, Java, Pascal ve benimsenmesi kolay diğer birkaç dilden etkilenir. C# ayrıca karmaşıklıktan ve yapılandırılmamış dil özelliklerinden de kaçınır. 

C# hızlı ve açık kaynaktır

 C#, Microsoft’tan bağımsız olarak yönetilen ve çalışan .NET Foundation altında açık kaynak kodludur. C# dili belirtimleri, derleyiciler ve ilgili araçlar Github’daki açık kaynaklı projelerdir. C# dil özelliği tasarımı Microsoft tarafından yönetilirken, açık kaynak topluluğu dil geliştirme ve iyileştirmelerinde çok aktiftir. C#, diğer birçok üst düzey programlama diliyle karşılaştırıldığında hızlıdır. C# 8 birçok performans iyileştirmesine sahiptir. 

C# çapraz platformdur

 C#, platformlar arası programlama dilidir. Windows, Linux ve Mac platformlarında dağıtılabilen .NET uygulamaları oluşturabilirsiniz. C# uygulamaları ayrıca bulut ve kapsayıcılarda da dağıtılabilir. 

C # güvenli ve etkilidir

 C#, tür güvenli bir dildir. C#, veri kaybına veya başka sorunlara yol açabilecek tür dönüşümlerine izin vermez. C#, geliştiricilerin güvenli kod yazmasına izin verir. C# ayrıca verimli kod yazmaya odaklanır. Güvenli ve verimli kod yazmaya yardımcı olan C#’daki bazı temel kavramların bir listesi aşağıda verilmiştir.

  • Güvenli olmayan tür yayınlamaya izin verilmez.
  • Null yapılabilir ve null yapılamayan türler C# ‘da desteklenir.
  • Bir türün değişmez olduğunu ve derleyicinin parametrelerde kullanırken kopyaları kaydetmesini sağlamak için salt okunur bir yapı bildirin.
  • Dönüş değeri IntPtr.Size değerinden daha büyük bir yapı olduğunda ve depolama ömrü değeri döndüren yöntemden daha büyük olduğunda ref readonly dönüşü kullanın.
  • Bir salt okunur yapının boyutu IntPtr.Size’dan daha büyük olduğunda, performans nedenleriyle bunu bir in parametresi olarak iletmelisiniz.
  • Performansı olumsuz etkileyebileceğinden ve belirsiz bir davranışa yol açabileceğinden, bir yapıyı salt okunur değiştiriciyle bildirilmediği sürece bir in parametresi olarak asla iletmeyin.
  • Bellekle bir bayt dizisi olarak çalışmak için bir ref yapısı veya Span <T> veya ReadOnlySpan <T> gibi salt okunur bir yapı kullanın.

Referanslar

C# çok yönlüdür

 C# bir İsviçre çakısıdır. Çoğu programlama dili belirli bir amaç için tasarlanmış olsa da, Günümüzün modern yazılım uygulamalarını oluşturmak için C# kullanabiliriz. C#, Windows istemci uygulamaları, bileşenleri ve kitaplıkları, hizmetler ve API’ler, Web uygulamaları, Mobil uygulamalar, bulut uygulamaları ve video oyunları dahil her tür uygulamayı geliştirmek için kullanılabilir. C# ‘ın oluşturabileceği uygulama türlerinin listesi aşağıda verilmiştir:

  • Windows istemci uygulamaları
  • Windows kitaplıkları ve bileşenleri
  • Windows hizmetleri
  • internet uygulamaları
  • Web hizmetleri ve Web API
  • Yerel iOS ve Android mobil uygulamaları
  • Arka uç hizmetleri
  • Azure bulut uygulamaları ve hizmetleri
  • ML / Veri araçlarını kullanan arka uç veritabanı
  • Office, SharePoint, SQL Server ve benzeri gibi birlikte çalışabilirlik yazılımları.
  • Yapay Zeka ve Makine öğrenimi
  • Kripto para birimi dahil olmak üzere blok zincirleri ve dağıtılmış defter teknolojisi
  • Nesnelerin İnterneti (IoT) cihazları
  • Oyun konsolları ve oyun sistemleri
  • Video oyunları

C# gelişiyor

 C# 8.0, C# ‘ın en son sürümüdür. C# dil geçmişine bakarsanız, C# diğer dillerden daha hızlı gelişiyor. Microsoft ve güçlü bir topluluk desteği sayesinde. C# başlangıçta Windows istemci uygulamaları yazmak için tasarlandı, ancak bugün C# konsol uygulamalarından, bulut uygulamasından ve modern makine öğrenimi yazılımından hemen hemen her şeyi yapabilir. Aşağıdaki tablo C# sürümlerini yıl ve özelliklerle özetler.

SürümYılÖzellikleri
1.01999-2002Modern, Nesneye Yönelik, Basit, Esnek, Türlere Uygun, Yönetilebilir, Çöp Toplama, Çapraz platform
2.02005Jenerikler, Anonim Yöntem, Kısmi Sınıf, Null yapılabilir Tür
3.02008LINQ, Lamda İfadesi, Uzantı Yöntemi, Anonim Tür, Var
4.02010Adlandırılmış ve İsteğe Bağlı Parametreler, Dinamik Bağlama
5.02012Async Programlama
6.02015Hizmet olarak derleyici (Roslyn), İstisna filtreleri, Yakalama / nihayet bloklarında bekleme, Otomatik özellik başlatıcıları, Sözlük başlatıcı, Yalnızca alıcı özellikleri için varsayılan değerler, İfade gövdeli üyeler. Boş yayıcı, Dize enterpolasyonu, operatör adı
7.02017Tuples, Out değişkenleri, Desen eşleştirme, Yapısızlaştırma, Yerel fonksiyonlar, Rakam ayırıcılar, İkili değişmez değerler, Ref dönüşleri ve yereller, Genelleştirilmiş zaman uyumsuz dönüş türleri, İfade gövdeli oluşturucular ve sonlandırıcılar, İfade gövdeli alıcılar ve ayarlayıcılar, Atma ayrıca ifade olarak kullanılabilir
7.12017Zaman uyumsuz ana, Varsayılan değişmez ifadeler, Çıkarılan tuple öğe adları
7.22017Değer türleri ile referans anlambilim, Sonda olmayan adlandırılmış bağımsız değişkenler, Sayısal değişmez değerlerde önde gelen alt çizgiler, özel korumalı erişim değiştirici
7.32018Sabit alanlara sabitlemeden erişim, Yerel değişkenleri yeniden atama, Stackalloc dizilerinde başlatıcıları kullanma, Bir deseni destekleyen herhangi bir türle sabit ifadeler kullanma, Ek genel kısıtlamaları kullanma
8.02019Null yapılabilir başvuru türleri, Zaman uyumsuz akışlar, aralıklar ve dizinler, arabirim üyelerinin varsayılan uygulaması, özyinelemeli desenler, anahtar ifadeleri, hedef türü yeni ifadeler

C# Dizeleri

 Herhangi bir programlama dilinde, bir değeri temsil etmek için bir veri türüne ihtiyacımız var. Char veri türü .NET’te bir karakteri temsil eder. .NET’te metin, Char veri türlerinin sıralı salt okunur bir koleksiyonu olarak depolanır. Bir C# dizesinin sonunda boş sonlandırıcı karakter yoktur; bu nedenle bir C# dizesi herhangi bir sayıda gömülü boş karakter (‘\ 0’) içerebilir. 

System.String veri türü .NET’te bir dizeyi temsil eder. C#’daki bir dize sınıfı, System.String türünde bir nesnedir. C# ‘teki String sınıfı bir dizeyi temsil eder.

.NET temel sınıf kitaplığında tanımlanan dize sınıfı, metni bir dizi Unicode karakteri olarak temsil eder. String sınıfı, dizelerle çalışmak için yöntemler ve özellikler sağlar.

String sınıfı, bir dizeyi klonlamak, dizeleri karşılaştırmak, dizeleri birleştirmek ve dizeleri kopyalamak için yöntemler içerir. Bu sınıf ayrıca bir dizedeki bir alt dizeyi bulma, bir karakterin veya alt dizinin dizinini bulma, karakterleri değiştirme, bir dizeyi bölme, bir dizeyi kırpma ve bir dizeye dolgu ekleme yöntemleri sağlar. String sınıfı ayrıca bir dizenin karakterlerini büyük veya küçük harfe dönüştürmek için yöntemler sağlar. String In C# burada daha fazla bilgi edinin  . 

C# Diziler

 C# ‘da bir Dizi, nesnelerin veya türlerin bir koleksiyonudur. C# Dizi öğeleri, bir dizi türü dahil olmak üzere herhangi bir türde olabilir. Bir dizi Tek Boyutlu, Çok Boyutlu veya Tırtıklı olabilir. C# Dizisi sabit uzunlukta veya dinamik olarak tanımlanabilir. C#’daki bir Dizi, tek boyutlu, çok boyutlu veya pürüzlü bir dizi olabilir. C# ‘da dizilerle nasıl çalışılacağını öğrenin. C# ‘da bir dizi dizini sıfırdan başlar. Bunun anlamı 0, bir dizi başlatma birinci madde inci pozisyon. Bir dizinin son öğenin konumu öğelerinin sayısını toplam olacaktır – Bir dizi 10 öğe varsa Yani 1. son 10 inci  madde 9’da olduğu inci  pozisyon. C# ‘da diziler sabit uzunlukta veya dinamik olarak bildirilebilir. Bir  sabit uzunlukta  dizi öğe önceden belirlenen sayıda depolayabilir. Bir  dinamik dizisi  bir önceden tanımlanmış boyuta sahip değildir. Diziye  yeni öğeler ekledikçe dinamik dizinin boyutu  artar. Sabit uzunlukta veya dinamik bir dizi tanımlayabilirsiniz. Dinamik bir diziyi tanımlandıktan sonra statik olarak bile değiştirebilirsiniz. C # ‘da dizilerin basit bildirimlerine bir göz atalım. Aşağıdaki kod parçacığı, sabit bir boyuta sahip olmayan en basit dinamik tamsayı türleri dizisini tanımlar. int [] intArray;Yukarıdaki kod parçacığından da görebileceğiniz gibi, bir dizinin bildirimi bir dizi türü ile başlar, ardından köşeli parantez ([]) ve dizi adı gelir. Aşağıdaki kod parçacığı, yalnızca 0 ile 4 arasındaki dizinden başlayarak 5 öğeyi depolayabilen bir dizi bildirir. 

  1. int [] intArray;    
  2. intArray =  new int [5];     

Aşağıdaki kod parçacığı, 0 ile 99 arasındaki dizinlerden başlayarak 100 öğeyi saklayabilen bir dizi bildirir. 

  1. int [] intArray;    
  2. intArray =  new int [100];    

C# Koleksiyonlar

 C# toplama türleri, benzer verileri daha verimli bir şekilde depolamak, yönetmek ve işlemek için tasarlanmıştır. Veri işleme, koleksiyona veri eklemeyi, çıkarmayı, bulmayı ve eklemeyi içerir. Koleksiyon türleri aşağıdaki ortak işlevleri uygular: 

  • Bir koleksiyona öğe ekleme ve ekleme
  • Bir koleksiyondan öğe çıkarma
  • Öğeleri bulma, sıralama, arama
  • Öğelerin değiştirilmesi
  • Koleksiyonları ve öğeleri kopyalayın ve klonlayın
  • Koleksiyonun kapasitesini ve koleksiyondaki öğe sayısını bulmak için Kapasite ve Sayım özellikleri

.NET iki tür koleksiyonu destekler: genel koleksiyonlar ve genel olmayan koleksiyonlar. .NET 2.0’dan önce sadece koleksiyonlardı ve .NET’e jenerikler eklendiğinde, jenerik koleksiyonlar da ekleniyordu.