5.00 / 1 oy

C# Struct (Yapı) Nedir?

C# programlama dilinde struct'lar (yapılar) class'lara (sınıflara) oldukça benzerler; ancak struct'lar değer dipindedir (value type) ve class'lar ise referans tipindedir (reference type). Bunun pratikteki anlamı ise şudur:

- Eğer bir sınıftan (class) bir nesne oluşturursanız boş olabilir

- Bir yapıdan (stcuct) bir nesne oluşturduğunuzda ise boş olamaz

Örnek: C# programlama dilinde bir struct oluşturun oluşturun

struct Bardak
{
    public string tur;
    public double hacim;
    public DateTime uretimtarihi;
    public bool kulplu;

    public void OzellikleriGoster()
    {
        System.Console.WriteLine("Bardağın türü: {0}", tur);
        System.Console.WriteLine("Bardağın hacmi: {0} cm küp", hacim);
        System.Console.WriteLine("Bardağın üretim tarihi: {0}", uretimtarihi);
        if (kulplu)
            System.Console.WriteLine("Bardak kulplu");
        else
            System.Console.WriteLine("Bardak kulpsuz");
    }

}
Bardak bardak;
bardak.tur = "çay bardağı";
bardak.uretimtarihi = DateTime.Parse("01.01.2000");
bardak.hacim = 20;
bardak.kulplu = true;
bardak.OzellikleriGoster();

Çıktı:

Bardağın türü: çay bardağı
Bardağın hacmi: 20 cm küp
Bardağın üretim tarihi: 1/1/2000 12:00:00 AM
Bardağın kulplu

Class ve Struct Arasındaki Farklar

 - Struct'larda parametresiz constructor (kurucu) eklenemez

- Değer tipi olduğu için struct nesneleri null olamazlar, ama sınıflar için böyle bir kısıtlama yoktur

- Struct'lara Interface implement edilebilir ancak Struct'lar kalıtımı desteklemezler (başka sınıftan ya da yapıdan türetilemezler). Sınıflar ise hem kalıtımı, hem de interface'i desteklerler

- Struct elemanlarının default değeri public'tir, class elemanlarının default değeri ise private'tir.

 

Önceki bazı diğer ilgili yazılarım için;

bkz: C# Erişim Belirleyicileri (Access Modifiers)

bkz: Programlamada Encapsulation (Kapsülleme) Nedir?

bkz: C# Abstract Class ile Interface Arasındaki Farklar Nelerdir?

bkz: C# Polymorphism (Çok Biçimlilik) Nedir?

bkz: C# Virtual Metod Nedir ve Nasıl Kullanılır?

bkz: C# Sınıf ve Nesne Nedir?

mbologlu

17.05.2021 05:26

Bu soru henüz yanıtlanmamış.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
C# Struct (Yapı) Nedir?

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.