Yapılar (C# Programlama Kılavuzu)Structs (C# Programming Guide)

Yapılar struct anahtar sözcüğü kullanılarak tanımlanır, örneğin:Structs are defined by using the struct keyword, for example:

public struct PostalAddress
{
    // Fields, properties, methods and events go here...
}

Yapılar, aynı sözdiziminin büyük bir kısmını sınıflarla paylaşır.Structs share most of the same syntax as classes. Yapının adı geçerli C# bir tanımlayıcı adıolmalıdır.The name of the struct must be a valid C# identifier name. Yapılar aşağıdaki yollarla sınıflardan daha sınırlıdır:Structs are more limited than classes in the following ways:

  • Bir struct bildiriminde, alanlar const veya static olarak bildirilmeyen sürece başlatılamaz.Within a struct declaration, fields cannot be initialized unless they are declared as const or static.
  • Struct parametresiz bir Oluşturucu (parametresiz bir Oluşturucu) veya sonlandırıcısı bildiremez.A struct cannot declare a parameterless constructor (a constructor without parameters) or a finalizer.
  • Yapılar atamaya kopyalanır.Structs are copied on assignment. Bir yapı yeni bir değişkene atandığında, tüm veriler kopyalanır ve yeni kopyada yapılan değişiklikler özgün kopyanın verilerini değiştirmez.When a struct is assigned to a new variable, all the data is copied, and any modification to the new copy does not change the data for the original copy. Bu, Dictionary<string, myStruct>gibi değer türlerinin koleksiyonlarıyla çalışırken unutmamak önemlidir.This is important to remember when working with collections of value types such as Dictionary<string, myStruct>.
  • Yapılar, başvuru türleri olan sınıfların aksine değer türlerdir.Structs are value types, unlike classes, which are reference types.
  • Sınıfların aksine, yapılar new işleci kullanılmadan oluşturulabilir.Unlike classes, structs can be instantiated without using a new operator.
  • Yapılar, parametreleri olan oluşturucular bildirebilir.Structs can declare constructors that have parameters.
  • Yapı, başka bir struct veya sınıftan devralınabilir ve bir sınıfın temeli olamaz.A struct cannot inherit from another struct or class, and it cannot be the base of a class. Tüm yapılar, Objectdevralan ValueTypedoğrudan devralır.All structs inherit directly from ValueType, which inherits from Object.
  • Bir struct, arabirimler uygulayabilir.A struct can implement interfaces.
  • Bir struct nullolamaz ve değişken null değer türü olarak bildirildiği sürece bir struct değişkeni null atanamaz.A struct cannot be null, and a struct variable cannot be assigned null unless the variable is declared as a nullable value type.

Ayrıca bkz.See also