C#

C# Structs

Yazar - UĞUR

Struct(Yapı), genellikle bir dikdörtgenin koordinatları veya bir envanterdeki bir öğenin özelliklerini içeren ilgili değişkenlerin küçük gruplarını kapsüllemek için kullanılan bir değer türüdür. Aşağıdaki örnekte basit bir struct bildirimi gösterilmektedir:

struct Book {
 public string title; 
 public double price;
 public string author;
}

Struct, sınıflarla aynı söz dizimini paylaşır, ancak sınıflardan daha sınırlıdır.
Sınıfların aksine, struct yeni bir operatör kullanmadan örneklenebilir.

static void Main(string[] args) {
 Book b;
 b.title = "Test";
 b.price = 5.99;
 b.author = "David";

 Console.WriteLine(b.title);
 //Outputs "Test"
}

Yapılar inheritance desteklemez ve virtual methods(sanal yöntemleri) içeremez.

 

Struct, metotlar, properties(özellikler), indexers(dizinleyiciler) vb. içerebilir. Struct, varsayılan constructor (parametre içermeyen bir constructor ) içeremez, ancak parametre alan bir constructor‘a sahip olabilirler. Bu durumda new anahtar kelimesi, sınıf(class) nesnelerine benzer bir struct nesnesinin örneğini oluşturmak için kullanılır.

struct Point {
 public int x;
 public int y;
 public Point(int x, int y) {
 this.x = x;
 this.y = y;
 }
}
static void Main(string[] args) {
 Point p = new Point(10, 15);
 Console.WriteLine(p.x);
 // Outputs 10
 }

Struct vs Class

Genel olarak sınıflar(Class), bir sınıf(class) nesnesi oluşturulduktan sonra değiştirilmesi amaçlanan daha karmaşık davranışları veya verileri modellemek için kullanılır. Struct, en başta yapıcı oluşturulduktan sonra değiştirilmesi amaçlanmayan veri içeren küçük veri yapıları için uygundur. Basit bir veri kümesini göstermeye çalışıyorsanız, sınıf(Class) yerine bir struct tanımlamayı düşünebilirsiniz.

Tüm standart C # türleri (int, double, bool, char vb.) Aslında struct’lardır.

Yorum Yap

This site uses Akismet to reduce spam. Learn how your comment data is processed.