class (C# Başvurusu)class (C# Reference)

Sınıflar, aşağıdaki örnekte gösterildiği gibi classanahtar sözcüğü kullanılarak bildirilmiştir:Classes are declared using the keyword class, as shown in the following example:

class TestClass
{
    // Methods, properties, fields, events, delegates
    // and nested classes go here.
}

AçıklamalarRemarks

İçinde C#yalnızca tekli devralmaya izin verilir.Only single inheritance is allowed in C#. Diğer bir deyişle, bir sınıf yalnızca bir temel sınıftan uygulamayı devralınabilir.In other words, a class can inherit implementation from one base class only. Ancak, bir sınıf birden fazla arabirim uygulayabilir.However, a class can implement more than one interface. Aşağıdaki tabloda sınıf devralma ve arabirim uygulama örnekleri gösterilmektedir:The following table shows examples of class inheritance and interface implementation:

DevralmaInheritance ÖrnekExample
Yok.None class ClassA { }
TekSingle class DerivedClass: BaseClass { }
Hiçbiri, iki arabirim uygularNone, implements two interfaces class ImplClass: IFace1, IFace2 { }
Tek, bir arabirim uygularSingle, implements one interface 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 olabilir.Classes that you declare directly within a namespace, not nested within other classes, can be either public or internal. Sınıflar varsayılan internal olarak ' dir.Classes are internal by default.

İç içe geçmiş sınıflar dahil olmak üzere sınıf üyeleri ortak, korumalı dahili, korunan, dahili, özelveya özel korumalıolabilir.Class members, including nested classes, can be public, protected internal, protected, internal, private, or private protected. Üyeler varsayılan private olarak ' dir.Members are private by default.

Daha fazla bilgi için bkz. erişim değiştiricileri.For more information, see Access Modifiers.

Tür parametrelerine sahip genel sınıfları bildirebilirsiniz.You can declare generic classes that have type parameters. Daha fazla bilgi için bkz. genel sınıflar.For more information, see Generic Classes.

Bir sınıf, aşağıdaki üyelerin bildirimlerini içerebilir:A class can contain declarations of the following members:

ÖrnekExample

Aşağıdaki örnek, sınıf alanları, oluşturucular ve yöntemlerinin bildirimini gösterir.The following example demonstrates declaring class fields, constructors, and methods. Ayrıca, nesne örneğini oluşturmayı ve örnek verilerini yazdırmayı gösterir.It also demonstrates object instantiation and printing instance data. Bu örnekte, iki sınıf bildirilmiştir.In this example, two classes are declared. İlk sınıf Childolan, iki özel alan (name ve age), iki ortak Oluşturucu ve bir genel yöntem içerir.The first class, Child, contains two private fields (name and age), two public constructors and one public method. İkinci sınıfı StringTest, öğesini içermesi Mainiçin kullanılır.The second class, StringTest, is used to contain 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.
*/

AçıklamalarComments

Önceki örnekte özel alanlara (name ve age) yalnızca Child sınıfın genel yöntemiyle erişildiğine dikkat edin.Notice that in the previous example the private fields (name and age) can only be accessed through the public method of the Child class. Örneğin, aşağıdaki gibi bir ifade kullanarak alt öğenin adını Main yöntemden yazdıramazsınız:For example, you cannot print the child's name, from the Main method, using a statement like this:

Console.Write(child1.name);   // Error

' In Child Main özel üyelerine erişim, yalnızca sınıfının bir üyesi Main ise mümkün olacaktır.Accessing private members of Child from Main would only be possible if Main were a member of the class.

Bir erişim değiştiricisi privateolmayan bir sınıf içinde bildirildiği türler, bu nedenle bu örnekteki veri üyeleri anahtar sözcüğünün kaldırılmakta olması private durumunda olmaya devam eder.Types declared inside a class without an access modifier default to private, so the data members in this example would still be private if the keyword were removed.

Son olarak, parametresiz Oluşturucu (child3) kullanılarak oluşturulan nesne için age , alanın varsayılan olarak sıfıra başlatıldığını fark edersiniz.Finally, notice that for the object created using the parameterless constructor (child3), the age field was initialized to zero by default.

C# dili belirtimiC# language specification

Daha fazla bilgi edinmek için, bkz. C# Dil Belirtimi.For more information, see the C# Language Specification. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.The language specification is the definitive source for C# syntax and usage.

Ayrıca bkz.See also