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

Sınıflar, aşağıdaki örnekte gösterildiği gibi anahtar sözcük classkullanı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 olarak internal.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 olarak private.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 Child, 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, Mainiçermesi iç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ın public yöntemi aracılığıyla 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, çocuğun adını Main yönteminden yazdıramıyorsunuz:For example, you cannot print the child's name, from the Main method, using a statement like this:

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

Main Child özel üyelerine erişmek, yalnızca Main sınıfının bir üyesi olması durumunda olabilir.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 olmayan bir sınıf içinde belirtilen türler privateiçin varsayılan olarak, bu örnekteki veri üyeleri anahtar sözcük kaldırılırsa private 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ırdan başlatıldığını görürsünüz.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