English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# Klasse (Class)

类就像特定对象的蓝图。在现实世界中,每个对象都有一些颜色,形状和功能-例如,豪华跑车法拉利。法拉利是豪华车类型的对象。豪华车是一门表明某些特性的类,例如速度,颜色,形状,内饰等。因此,制造满足这些要求的汽车的任何公司都是豪华车类型的对象。例如,宝马,兰博基尼,凯迪拉克的每辆汽车都是“豪华车”类的对象。在这里,“豪华车”是一类,每一辆实物汽车都是豪华车类的对象。

同样,在面向对象的程序设计中,类定义了一些属性,字段,事件,方法等。类定义了数据的种类及其对象将具有的功能。

类使您可以通过对其他类型,方法和事件的变量进行分组来创建自定义类型。

在C#中,可以使用 class 关键字定义一个类。

public class MyClass
{
    public string myField = string.Empty;
    public MyClass()
    {
    }
    public void MyMethod(int parameter1, string parameter2)
    {
        Console.WriteLine("First Parameter {0}, second parameter {1}1, parameter2;
    }
    public int MyAutoImplementedProperty { get; set; }
    private int myPropertyVar;
    
    public int MyProperty
    {
        get { return myPropertyVar; }
        set { myPropertyVar = value; }
    } 
}

下图显示了C#类的重要构建块。

C# 类

C# 访问修饰符

访问修饰符应用于类,方法,属性,字段和其他成员的声明。它们定义了类及其成员的可访问性。公共,私有,受保护和内部是C#中的访问修饰符。我们将在关键字部分中对此进行了解。

C# 字段

该字段是一个具有值的类级变量。通常,字段成员应具有私有访问修饰符并与属性一起使用。

C# 构造函数

一个类可以具有参数化或无参数的构造函数。创建类的实例时,将调用构造函数。可以使用访问修饰符和类名称来定义构造函数:

<access modifiers> <class name>() { }
class MyClass
{
    public MyClass()
    {
    }
}

C# 方法

可以使用以下模板定义方法:

{access modifier} { return type } MethodName({parameterType parameterName})
public void MyMethod(int parameter1, string parameter2)
{
    // Schreiben Sie hier Ihren Methoden-Code. 
}

Eigenschaft

Eigenschaften können wie folgt mit Getter und Setter definiert werden:

private int _myPropertyVar;
public int MyProperty
{
    get { return _myPropertyVar; }
    set { _myPropertyVar = value; }
}

Eine Eigenschaft verpackt ein privates Feld. Es stellt Getter (get {}) bereit, um den Wert des Basisfeldes abzurufen, und stellt Setter (set {}) bereit, um den Wert des Basisfeldes zu setzen. In diesem Beispiel ist _myPropertyVar ein privates Feld und kann nicht direkt aufgerufen werden. Es kann nur über MyProperty aufgerufen werden. Daher verpackt MyProperty _myPropertyVar.

Sie können auch einige andere Logiken in get und set anwenden, wie im folgenden Beispiel gezeigt.

private int _myPropertyVar;
public int MyProperty
{
    get {
        return _myPropertyVar / 2;
    }
    set {
        if (value > 100)
            _myPropertyVar = 100;
        else
            _myPropertyVar = value;
    }
}

Automatisch implementierte Eigenschaften

Von C#3Ab Version 2.0 können Sie leicht Eigenschaftserklärungen durchführen, wenn Sie keine bestimmten Logiken in get oder set anwenden möchten.

Hier ist ein Beispiel für automatische Eigenschaften:

public int MyAutoImplementedProperty { get; set; }

Beachten Sie, dass in den obigen Beispiel für Eigenschaften keine privaten Reservefelder vorhanden sind. Unterstützungsfelder werden vom Compiler automatisch erstellt. Sie können automatisierte Eigenschaften wie bei den regulären Eigenschaften der Klasse verwenden. Automatisch implementierte Eigenschaften sind nur dazu da, die einfache Deklaration von Eigenschaften zu erleichtern, wenn keine anderen Logiken im Zugriff auf den Attributassistenten erforderlich sind.

Namespace

Ein Namespace ist ein Container für eine Gruppe von verwandten Klassen und Namespaces. Namespaces werden auch verwendet, um einzigartige Namen für Klassen innerhalb eines Namespaces bereitzustellen. Namespaces und Klassen werden durch einen Punkt (.) getrennt.

In C# kann das namespace-Schlüsselwort verwendet werden, um einen Namespace zu definieren.

namespace CSharpTutorials
{
    class MyClass
    {
    }
}

Im obigen Beispiel ist der vollständige Klassename von MyClass CSharpTutorials.MyClass.

Ein Namensraum kann andere Namensräume enthalten. Innere Namensräume können durch Punkt (.) getrennt werden.

namespace CSharpTutorials.Examples
{
    class MyClassExample
    {
    }
}

Im obigen Beispiel ist der vollständige Klassename von MyClassExample CSharpTutorials.Examples.MyClassExample.