屬性
public 類字段 就相當於c#里面暴露給外面的屬性 類似nodejs的 module.exports
但是屬性又不同於普通的字段,屬性只是外部包裝字段 沒有自己的任何含量 類似退換后的方法。 還是需要內部字段來設置。
private 類字段 就相當於類內部使用的字段。其實可以把屬性看做私有變量的訪問器
1、屬性的作用:保護字段,對字段取值與賦值進行限定
2、屬性的使用:
_name(屬性名) public [對應字段類型] 屬性名Name { get{return _name;} set{_name=value;} }
3、字段和屬性的命名格式:
字段的命名方式一般采用:_cameCase
字段的命名方式一般采用:PascalCase
4、有了屬性以后,往往通過屬性去訪問字段。屬性通常聲明為public,字段通常聲明為private。在外部訪問類中的字段,都是通過屬性來實現。get可對取值進行界定,set可對賦值進行界定,通常我們將get和set稱為訪問器。
5、屬性分為4種,
1)既讀又寫:同時包含get和set
2)只讀:只包含get
3)只寫:只包含set
4)自動屬性
例子:
class gwyy { private string _name; //字段 私有 public string Name { get { return _name + 'a'; } set { _name = value; } } 屬性,公有 但是還是需要依賴於實體字段 }
方法:
“方法”是包含一系列語句的代碼塊。在 C# 中,每個執行指令都是在方法的上下文中完成的。
方法在類或結構中聲明,聲明時,聲明時需要指定訪問級別、返回值、方法名稱以及任何方法參數。方法參數放在括號中,並用逗號隔開。空括號表示方法不需要參數。下面的類包含三個方法:
class Motorcycle { public void StartEngine() { } public void AddGas(int gallons) { } public int Drive(int miles, int speed) { return 0; } }
靜態方法
靜態方法不對特定的類實例化,調用時候,需要指定類名調用
非靜態方法
略。。。
方法重載
方法名相同,但參數的 數據類型、 個數、順序不同
可變參數
可以在方法參數欄加params屬性 接受一個一維數組的可變參數
public void test1(params string[] list) { for (int i = 0; i < list.Length; i++) { Console.WriteLine(list[i]); }
}
ref 按引用傳遞
調用方法時,在方法中對參數所做的任何更改都反應在該變量中。
使用ref參數 必須方法聲明 和調用方都必須顯示的使用 ref關鍵字
int i = 3; Console.WriteLine(i); g.test2(ref i); Console.WriteLine(i); public void test2(ref int i) { i = 55; }
out定義輸出參數
參數通過引用來傳遞。ref要求變量必須在傳遞前初始化。而out參數不用初始化。
必須聲明和調用方都顯示使用 out
int value; g.test3(out value); public void test3(out int i) { i = 66; }