類就像特定對象的藍(lán)圖。在現(xiàn)實世界中,每個對象都有一些顏色,形狀和功能-例如,豪華跑車法拉利。法拉利是豪華車類型的對象。豪華車是一門表明某些特性的類,例如速度,顏色,形狀,內(nèi)飾等。因此,制造滿足這些要求的汽車的任何公司都是豪華車類型的對象。例如,寶馬,蘭博基尼,凱迪拉克的每輛汽車都是“豪華車”類的對象。在這里,“豪華車”是一類,每一輛實物汽車都是豪華車類的對象。
同樣,在面向?qū)ο蟮某绦蛟O(shè)計中,類定義了一些屬性,字段,事件,方法等。類定義了數(shù)據(jù)的種類及其對象將具有的功能。
類使您可以通過對其他類型,方法和事件的變量進(jìn)行分組來創(chuàng)建自定義類型。
在C#中,可以使用 class 關(guān)鍵字定義一個類。
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}", parameter1, parameter2);
}
public int MyAutoImplementedProperty { get; set; }
private int myPropertyVar;
public int MyProperty
{
get { return myPropertyVar; }
set { myPropertyVar = value; }
}
}下圖顯示了C#類的重要構(gòu)建塊。

訪問修飾符應(yīng)用于類,方法,屬性,字段和其他成員的聲明。它們定義了類及其成員的可訪問性。公共,私有,受保護(hù)和內(nèi)部是C#中的訪問修飾符。我們將在關(guān)鍵字部分中對此進(jìn)行了解。
該字段是一個具有值的類級變量。通常,字段成員應(yīng)具有私有訪問修飾符并與屬性一起使用。
一個類可以具有參數(shù)化或無參數(shù)的構(gòu)造函數(shù)。創(chuàng)建類的實例時,將調(diào)用構(gòu)造函數(shù)??梢允褂迷L問修飾符和類名稱來定義構(gòu)造函數(shù):
<access modifiers> <class name>(){ }class MyClass
{
public MyClass()
{
}
}可以使用以下模板定義方法:
{access modifier} {return type} MethodName({parameterType parameterName})public void MyMethod(int parameter1, string parameter2)
{
// 在此處編寫您的方法代碼。
}可以使用getter和setter定義屬性,如下所示:
private int _myPropertyVar;
public int MyProperty
{
get { return _myPropertyVar; }
set { _myPropertyVar = value; }
}屬性封裝了一個私有字段。它提供了getters(get {})來檢索基礎(chǔ)字段的值,并提供setters(set {})來設(shè)置基礎(chǔ)字段的值。在上面的示例中,_myPropertyVar是一個私有字段,無法直接訪問。只能通過MyProperty訪問。因此,MyProperty封裝了_myPropertyVar。
您還可以在get和set中應(yīng)用一些其他邏輯,如以下示例所示。
private int _myPropertyVar;
public int MyProperty
{
get {
return _myPropertyVar / 2;
}
set {
if (value > 100)
_myPropertyVar = 100;
else
_myPropertyVar = value; ;
}
}從C#3.0開始,如果您不想在get或set中應(yīng)用某些邏輯,則可以輕松進(jìn)行屬性聲明。
以下是自動實現(xiàn)的屬性的示例:
public int MyAutoImplementedProperty { get; set; }請注意,上述屬性示例中沒有私有后備字段。支持字段將由編譯器自動創(chuàng)建。您可以像使用類的常規(guī)屬性一樣使用自動化屬性。當(dāng)屬性訪問器中不需要其他邏輯時,自動實現(xiàn)的屬性只是為了輕松聲明屬性。
命名空間是一組相關(guān)類和命名空間的容器。命名空間還用于為命名空間名稱內(nèi)的類提供唯一的名稱。命名空間和類使用點(.)表示。
在C#中,可以使用 namespace 關(guān)鍵字定義命名空間。
namespace CSharpTutorials
{
class MyClass
{
}
}在上面的示例中,MyClass的完全限定類名是 CSharpTutorials.MyClass.
命名空間可以包含其他命名空間。內(nèi)部命名空間可以使用(.)分隔。
namespace CSharpTutorials.Examples
{
class MyClassExample
{
}
}在上面的示例中,MyClassExample 的完全限定的類名稱為 CSharpTutorials.Examples.MyClassExample。