class (C# Başvurusu)
Sınıflar class , aşağıdaki örnekte gösterildiği gibi anahtar sözcüğü kullanılarak bildirilmiştir:
class TestClass
{
// Methods, properties, fields, events, delegates
// and nested classes go here.
}
Açıklamalar
C# içinde yalnızca tek devralmaya izin verilir. Diğer bir deyişle, bir sınıf yalnızca bir temel sınıftan uygulamayı devralınabilir. Ancak, bir sınıf birden fazla arabirim uygulayabilir. Aşağıdaki tabloda sınıf devralma ve arabirim uygulama örnekleri gösterilmektedir:
| Devralma | Örnek |
|---|---|
| Hiçbiri | class ClassA { } |
| Tek | class DerivedClass : BaseClass { } |
| Hiçbiri, iki arabirim uygular | class ImplClass : IFace1, IFace2 { } |
| Tek, bir arabirim uygular | class ImplDerivedClass : BaseClass, IFace1 { } |
Diğer sınıflarda iç içe değil, bir ad alanı içinde doğrudan bildirdiğiniz sınıflar ortak veya içolabilir. Sınıflar internal Varsayılan olarak ' dir.
İç içe geçmiş sınıflar dahil olmak üzere sınıf üyeleri ortak, korumalı dahili, korunan, dahili, özelveya özel korumalıolabilir. Üyeler private Varsayılan olarak ' dir.
Daha fazla bilgi için bkz. erişim değiştiricileri.
Tür parametrelerine sahip genel sınıfları bildirebilirsiniz. Daha fazla bilgi için bkz. genel sınıflar.
Bir sınıf, aşağıdaki üyelerin bildirimlerini içerebilir:
Örnek
Aşağıdaki örnek, sınıf alanları, oluşturucular ve yöntemlerinin bildirimini gösterir. Ayrıca, nesne örneğini oluşturmayı ve örnek verilerini yazdırmayı gösterir. Bu örnekte, iki sınıf bildirilmiştir. İlk sınıf olan, Child iki özel alan ( name ve age ), iki ortak Oluşturucu ve bir genel yöntem içerir. İkinci sınıfı, StringTest öğesini içermesi için kullanılır Main .
class Child
{
private int age;
private string name;
// Default constructor:
public Child()
{
name = "N/A";
}
// Constructor:
public Child(string name, int age)
{
this.name = name;
this.age = age;
}
// Printing method:
public void PrintChild()
{
Console.WriteLine("{0}, {1} years old.", name, age);
}
}
class StringTest
{
static void Main()
{
// Create objects by using the new operator:
Child child1 = new Child("Craig", 11);
Child child2 = new Child("Sally", 10);
// Create an object using the default constructor:
Child child3 = new Child();
// Display results:
Console.Write("Child #1: ");
child1.PrintChild();
Console.Write("Child #2: ");
child2.PrintChild();
Console.Write("Child #3: ");
child3.PrintChild();
}
}
/* Output:
Child #1: Craig, 11 years old.
Child #2: Sally, 10 years old.
Child #3: N/A, 0 years old.
*/
Yorumlar
Önceki örnekte özel alanlara ( name ve age ) yalnızca sınıfın genel yöntemiyle erişildiğine dikkat edin Child . Örneğin, Main aşağıdaki gibi bir ifade kullanarak alt öğenin adını yöntemden yazdıramazsınız:
Console.Write(child1.name); // Error
' In özel üyelerine erişim, Child Main yalnızca Main sınıfının bir üyesi ise mümkün olacaktır.
Bir erişim değiştiricisi olmayan bir sınıf içinde bildirildiği türler private , bu nedenle bu örnekteki veri üyeleri private anahtar sözcüğünün kaldırılmakta olması durumunda olmaya devam eder.
Son olarak, parametresiz Oluşturucu () kullanılarak oluşturulan nesne için child3 , age alanın varsayılan olarak sıfıra başlatıldığını fark edersiniz.
C# dili belirtimi
Daha fazla bilgi edinmek için, bkz. C# Dil Belirtimi. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.