類與對象

來源:互聯網
上載者:User

標籤:style   http   color   使用   os   ar   line   new   

C#中的基本類型都是值類型是在棧中建立的,而對象是參考型別是在堆中建立的,需要使用new關鍵字。

構造方法:

構造方法與類同名,沒有傳回型別。

This關鍵字:

限定被相似的名稱隱藏的成員,例如:


public Employee(string name, string alias){    // Use this to qualify the fields, name and alias:    this.name = name;    this.alias = alias;}

將對象作為參數傳遞到其他方法

Class myClass{    Public void foo(OtherClass otherObject){otherObject.Bar(this);}}

有一個myClass.foo的方法,在方法中調用otherObject.Bar方法,傳入對myClass當前執行個體的引用。這樣Bar方法就可以使用當前myClass當前執行個體的公開方法和成員了。

聲明索引器,例如:

public int this[int param]{    get { return array[param]; }    set { array[param] = value; }}

由於靜態成員函數存在於類一級,並且不是對象的一部分,因此沒有 this 指標。 在靜態方法中引用 this 是錯誤的

從重載構造方法中調用另一個:

Class myClass{    Public myCall (int i){//}    Public myCall ():this(42){//}}
這個例子中,預設構造方法使用this關鍵字調用參數為整數的重載構造方法

靜態成員:

非靜態類可以包含靜態方法、欄位、屬性或事件。 即使沒有建立類的執行個體,也可以調用該類中的靜態成員。 始終通過類名而不是執行個體名稱訪問靜態成員。 無論對一個類建立多少個執行個體,它的靜態成員都只有一個副本。 靜態方法和屬性不能訪問其包含類型中的非靜態欄位和事件,並且不能訪問任何對象的執行個體變數(除非在方法參數中顯式傳遞)。

更常見的做法是聲明具有一些靜態成員的非靜態類,而不是將整個類聲明為靜態類。 靜態欄位有兩個常見的用法:一是記錄已執行個體化對象的個數,二是儲存必須在所有執行個體之間共用的值。

靜態方法可以被重載但不能被重寫,因為它們屬於類,不屬於類的任何執行個體。

雖然欄位不能聲明為 static const,但 const 欄位的行為在本質上是靜態。 這樣的欄位屬於類型,不屬於類型的執行個體。 因此,可以同對待靜態欄位一樣使用 ClassName.MemberName 標記法來訪問 const 欄位。 不需要對象執行個體。

C# 不支援靜態局部變數(在方法範圍內聲明的變數)。


instances

public class Cat{    public Cat()    {        instances++;    }    public static void HowManyCats()    {        Console.WriteLine("{0} cats adopted",              instances);    }    private static int instances = 0;}public class Tester{    static void Main()    {        Cat.HowManyCats();        Cat frisky = new Cat();        Cat.HowManyCats();        Cat whiskers = new Cat();        Cat.HowManyCats();        Console.ReadLine();    }}
如果聲明了靜態構造方法,必須保證靜態構造方法在執行個體建立前運行。靜態構造方法前沒有存取修飾詞,且不能訪問非靜態成員變數,故上例中instance 也是靜態變數


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.