C#中的類成員

來源:互聯網
上載者:User

  C#中的類具有欄位、屬性、方法等類成員。本片文章主要就是介紹這幾個類成員以及類庫的概念。

 

  1、定義類成員

  所有的成員都有自己的存取層級:public,protected,private,internal。這幾個的區別就不說了,不知道的百度下。

  需要注意的是protected和internal是可以合并使用的,表示在同個項目(更準確的說是程式集)的繼承類裡可以訪問。

  如果在成員的前面加上static,說明這個成員是靜態成員。

  

  欄位和變數的區別:直接在類中的資料成員為欄位,他用存取修飾詞和資料類型類定義(public string name;),欄位就像類的一個小資料庫,用來存放與類相關的資料;而單純的變數是沒有修飾符的(int age;),他不能直接在類裡面定義,只能在函數裡面定義,他用來作為方法的一個臨時變數。

 

  定義欄位

class Class
{
public int MyInt;
}

  注意,類中的公用欄位推薦使用PascalCasing的命名方式,而私人欄位沒有推薦的,但是一般使用camelCasing。

  

  如果使用readonly關鍵字,那麼只能在建構函式的執行過程中賦值,或者在初始化指派陳述式中賦值。

class Class
{
public readonly int MyInt = 2;
}

 

  加上static關鍵字就是靜態欄位了。

class Class
{
public static int MyInt;
}

引用靜態變數不需要執行個體化,可以直接調用,如Class.MyInt。

 

  定義方法

  採用標準的函數格式。

class MyClass
{
public string MyString()
{
return "Here is a string";
}
}

  注意,類中的公用方法(如欄位)使用PascalCasing的命名。

 

  方法的聲明也可以使用static關鍵字,則為靜態方法。還可以使用一下的關鍵字,如:

  

 

  定義屬性

  屬性擁有兩個類似於函數的塊,一個用於擷取屬性的值,一個使用者佈建屬性的值。這兩個塊也成為訪問器,分別用get和set關鍵字來擷取和設定屬性的值。也可以忽略其中的一個塊來建立唯讀或者唯寫屬性(忽略get則建立之唯寫屬性,忽略set則建立唯讀屬性)。例如:

private int myInt;

public int MyIntProp
{
get { return myInt; }
set { myInt = value; }
}

  這個簡單的屬性只能訪問myInt欄位,不過我們大多數情況下可能需要對操作進行更多的控制。如下面的程式碼範例:

set 
{
if (value >= 0 && value <= 10)
{
myInt = value;
}
}

  如果賦給屬性的值在0到10之間,就修改屬性的值。如果不在應該怎麼選擇呢?有四種選擇:

  (1)什麼都不做:就像上面的例子一樣。

  (2)給欄位賦予預設值;

  (3)繼續執行,就行啊沒有發生錯誤一樣,但是記錄下改事件,以備將來分析。

  (4)拋出異常。

  一般情況下,選擇後兩種比較好。如拋出異常:

set 
{
if (value >= 0 && value <= 10)
{
myInt = value;
}
else
{
throw (new ArgumentOutOfRangeException("MyIntProp", value, "MyIntProp must be assigned a value between 0 and 10."));
}
}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.