Programlama C , C# , C++ , Java , Python , Php , Javascript , Matlab Örnekleri |
|
Seçenekler | Stil |
21 Temmuz 2021, 03:16 | #1 | |
C# tür sistemi
C# türü kesin olarak doğru olan bir dildir. Her değişken ve sabit, bir değer olarak değerlendirilen her ifadede olduğu gibi bir türe sahip olur.
Her yöntem bildirimi, her giriş parametresi ve dönüş değeri için bir ad, parametre sayısı ve tür ve tür (değer, başvuru veya çıkış) belirtir. .NET sınıf kitaplığı; dosya sistemi, ağ bağlantıları, koleksiyonlar ve nesne dizileri ve tarihler gibi çok çeşitli mantıksal yapıları temsil eden yerleşik sayısal türler ve daha karmaşık türler tanımlar. Tipik bir C# programı, sınıf kitaplığından türleri ve programın sorun etki alanına özgü kavramları modelleten kullanıcı tanımlı türleri kullanır. Bir tür içinde depolanan bilgiler aşağıdaki öğeleri içerebilir:
Derleyici, kodunda gerçekleştirilen tüm işlemlerin tür güvenli olduğundan emin olmak için tür bilgilerini kullanır. Örneğin, türünde bir değişken bildirirsiniz, derleyici toplama ve çıkarma int işlemleri içinde değişkeni kullanmana olanak sağlar. Türünde bir değişkende aynı işlemleri gerçekleştirmeye çalışsanız, derleyici aşağıdaki örnekte gösterildiği bool gibi bir hata üretir: PHP- Kodu
C ve C++ geliştiricileri, C# içinde'nin 'ye dönüştürülebilir bool olmadığını fark int edin. Derleyici, tür bilgilerini yürütülebilir dosyaya meta veri olarak karıştırır. Ortak dil çalışma zamanı (CLR), bellek ayırdığı ve geri kazanır daha fazla güvence altına almak için çalışma zamanında bu meta verileri kullanır. Değişken bildirimlerinde türleri belirtme Bir programda bir değişken veya sabit belirttiğinizde, türünü belirtmeniz veya var derleyicinin türü saymasına izin vermek için anahtar sözcüğünü kullanmanız gerekir. Aşağıdaki örnek, hem yerleşik sayısal türler hem de Kullanıcı tanımlı karmaşık türler kullanan bazı değişken bildirimlerini gösterir: PHP- Kodu
PHP- Kodu
Daha fazla bilgi için bkz. [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] Yerleşik türler C#, tamsayıları, kayan nokta değerlerini, Boole ifadelerini, metin karakterlerini, ondalık değerleri ve diğer veri türlerini temsil etmek için standart bir yerleşik türler kümesi sağlar. Ayrıca yerleşik string ve object türler vardır. Bu türler, herhangi bir C# programında kullanabileceğiniz şekilde kullanılabilir. Yerleşik türlerin tam listesi için bkz. [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] Özel türler struct class interface enum record Kendi özel türlerinizi oluşturmak için ,,, ve yapılarını kullanın. .NET sınıf kitaplığı kendi uygulamalarınızda kullanabileceğiniz özel türlerin bir koleksiyonudur. Varsayılan olarak, sınıf kitaplığındaki en sık kullanılan türler, herhangi bir C# programında kullanılabilir. Diğerleri yalnızca içinde tanımlandığı derlemeye açıkça bir proje başvurusu eklerken kullanılabilir hale geldi. Derleyici derlemeye bir başvuruya sahip olduktan sonra, kaynak kodda bu derlemede bildirilen türlerin değişkenlerini (ve sabitlerini) bildirebilirsiniz. Daha fazla bilgi için bkz. [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] Ortak tür sistemi .NET'te tür sistemi hakkında iki temel noktanın anlamak önemlidir:
Aşağıdaki çizimde, CTS'de değer türleri ve başvuru türleri arasındaki ilişki gösterilmiştir. Sınıflar ve yapılar, .NET 'teki ortak tür sisteminin temel yapılarıdır. C# 9, bir tür sınıf olan kayıtları ekler. Her biri, mantıksal birim olarak birbirine ait bir veri kümesini ve davranışları kapsülleyen bir veri yapısıdır. Veri ve davranışlar, sınıf, yapı veya kaydın üyeleridir ve bu makalede daha sonra listelendiği gibi yöntemleri, özellikleri, olayları vb. içerirler. Bir sınıf, yapı veya kayıt bildirimi, çalışma zamanında örnek veya nesne oluşturmak için kullanılan bir şema gibidir. Adlı bir sınıf, yapı veya kayıt tanımlarsanız Person , Person türünün adıdır. Türünde bir değişken bildirirseniz ve başladıysanız bir p Person p nesne veya örneği olarak ifade edilir Person . Aynı türde birden çok örnek Person oluşturulabilir ve her bir örnek, özelliklerinde ve alanlarında farklı değerlere sahip olabilir. Bir sınıf veya kayıt bir başvuru türüdür. Türün bir nesnesi oluşturulduğunda, nesnenin atandığı değişken yalnızca o belleğe yönelik bir başvuru barındırır. Nesne başvurusu yeni bir değişkene atandığında, yeni değişken özgün nesneye başvurur. Her ikisi de aynı verilere başvurduğundan, bir değişken aracılığıyla yapılan değişiklikler diğer değişkene yansıtılır. Struct bir değer türüdür. Bir struct oluşturulduğunda, yapının atandığı değişken yapının gerçek verilerini barındırır. Yapı yeni bir değişkene atandığında, kopyalanır. Bu nedenle, yeni değişken ve özgün değişken aynı verilerin iki ayrı kopyasını içerir. Bir kopyada yapılan değişiklikler diğer kopyayı etkilemez. Genel olarak, sınıflar daha karmaşık davranışı modellemek veya bir sınıf nesnesi oluşturulduktan sonra değiştirilmesi amaçlanan veriler için kullanılır. Yapılar, öncelikle yapı oluşturulduktan sonra değiştirilmesi amaçlanan verileri içeren küçük veri yapıları için idealdir. Kayıt türleri, nesne oluşturulduktan sonra değiştirilmek üzere amaçlanan öncelikli verileri içeren daha büyük veri yapılarının kullanımına yöneliktir. Değer türleri Değer türleri, 'den System.ValueType türetildi. System.Object türetki türleri System.ValueType CLR'de özel davranışa sahip. Değer türü değişkenleri doğrudan değerlerini içerir; başka bir anlama gelir; bu da değişkenin bildir olduğu bağlam içinde bellek satır içinde ayrılır. Değer türü değişkenleri için ayrı yığın ayırma veya çöp toplama yükü yoktur. İki değer türü kategorisi vardır: struct ve enum . Yerleşik sayısal türler yapıdır ve erişebilirsiniz alanları ve yöntemleri vardır: PHP- Kodu
PHP- Kodu
Kendi özel değer türlerinizi oluşturmak için struct anahtar sözcüğünü kullanırsınız. Genellikle bir yapı, aşağıdaki örnekte gösterildiği gibi küçük bir dizi ilgili değişken için kapsayıcı olarak kullanılır: PHP- Kodu
PHP- Kodu
Tüm numaralandırmalar öğesinden System.Enum devralan öğesinden devralır System.ValueType . Yapılar için uygulanan tüm kurallar, numaralandırmalar için de geçerlidir. Başvuru türleri ,,, class record delegate Dizisi veya bir interface başvuru türü olarak tanımlanan bir tür. Çalışma zamanında, bir başvuru türü değişkeni bildirdiğinizde, null işlecini kullanarak açıkça bir nesne oluşturana new veya onu new Aşağıdaki örnekte gösterildiği gibi kullanılarak başka bir yerde oluşturulmuş bir nesne atayarak değişken değeri içerir: PHP- Kodu
PHP- Kodu
Tüm diziler, öğeleri değer türleri olsa bile başvuru türlerdir. Diziler sınıfından dolaylı olarak türetilir System.Array , ancak aşağıdaki örnekte gösterildiği gibi bunları C# tarafından verilen Basitleştirilmiş sözdizimi ile bildirir ve kullanabilirsiniz: PHP- Kodu
Değişmez değer türleri C# içinde değişmez değerler derleyiciden bir tür alır. Sayinin sonuna bir harf ekerek sayısal değişmez değerin nasıl yaz olacağını belirtsiniz. Örneğin, değerin bir olarak kabul edilmelidir belirtmek 4.56 float için, sayanın arkasına bir "f" veya "F" ekler: 4.56f . Hiçbir harf ekli ise, derleyici sabit için bir tür çıkar. Değişmezler yazıldıklarından ve tüm türler sonunda 'den türetildiklerinden, aşağıdaki kod gibi System.Object bir kod yazıp derleyebilirsiniz: PHP- Kodu
Tür, istemci kodunun türün bir örneğini oluşturduğunda belirtecek gerçek tür (somut tür) için yer tutucu olarak hizmet eden bir veya daha fazla tür parametresiyle bildirebilirsiniz. Bu türler genel türler olarak adlandırılan türlerdir. Örneğin, .NET türünün System.Collections.Generic.List<T> kurala göre adı verilen bir tür parametresi T vardır. Türünün bir örneğini ekleyebilirsiniz, listede yer alan nesnelerin türünü belirtirsiniz, string örneğin: PHP- Kodu
Örtük türler, anonim türler ve null yapılabilir değer türleri Anahtar sözcüğünü kullanarak yerel bir değişkeni (sınıf üyelerini değil,) örtük olarak yazabilirsiniz var . Değişken hala derleme zamanında bir tür alır, ancak tür derleyici tarafından sağlanır. Metot sınırlarını depolamayı veya dışına geçirmemenizi istemediğiniz ilgili değerlerin basit kümeleri için adlandırılmış bir tür oluşturmak kullanışlı olabilir. Bu amaçla anonim türler oluşturabilirsiniz. Sıradan değer türlerinin değeri olamaz null . Ancak, türden sonra bir ekleyerek null olabilen değer türleri oluşturabilirsiniz ? . Örneğin, int? int değerine sahip bir tür de olabilir null . Null yapılabilir değer türleri, genel yapı türünün örnekleridir System.Nullable<T> . Null olabilen değer türleri, genellikle sayısal değerlerin olabileceği veritabanlarına ve veritabanlarından veri geçirirken faydalıdır null . Derleme zamanı türü ve çalışma zamanı türü Bir değişken farklı derleme zamanı ve çalışma zamanı türlerine sahip olabilir. Derleme zamanı türü , kaynak koddaki değişkenin bildirildiği veya Çıkarsanan türüdür. Çalışma zamanı türü , bu değişken tarafından başvurulan örneğin türüdür. Genellikle, bu iki tür aşağıdaki örnekte olduğu gibi aynıdır: PHP- Kodu
Diğer durumlarda, aşağıdaki iki örnekte gösterildiği gibi, derleme zamanı türü farklıdır: PHP- Kodu
İki tür bir değişken için farklı ise, derleme zamanı türü ve çalışma zamanı türünün ne zaman geçerli olduğunu anlamak önemlidir. Derleme zamanı türü, derleyici tarafından alınan tüm eylemleri belirler. Bu derleyici eylemleri yöntem çağrısı çözümlemesi, aşırı yükleme çözümlemesi ve kullanılabilir örtülü ve açık türler içerir. Çalışma zamanı türü, çalışma zamanında çözümlenen tüm eylemleri belirler. Bu çalışma zamanı eylemleri sanal yöntem çağrılarını gönderme, değerlendirme ve is switch ifadeleri ve diğer tür test API'lerini içerir. Kodunuzun türlerle nasıl etkileşim kurdığını daha iyi anlamak için, hangi eylemin hangi türe uygulandığını tanıyın. Alıntı:
________________
06/02/2023 İnsan olan herkesin kalbi acıdı.
|
||
|
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
Seçenekler | |
Stil | |
|
|