-
c#的值類型存儲在棧裏,而引用類型的引用存儲在棧裏,數據存儲在堆裏。
-
c#new關鍵字爲對象分配一個引用而非存儲數據。
-
引用類型關鍵字ref:
For example:c#
Int y;數組
void mymethod(ref int y);函數
Mymethod(ref y);this
-
輸出參數out:用於從方法體內把數據傳出到調用代碼。語法與ref相似。
Out和Ref相似:spa
- 1).ref必須將引用值初始化才能在方法內用不然報錯不能空引用。對out而言可在方法內進行值的初始化。(當out參數的值不會傳到out
參數中須要顯示傳遞)。對象
- 2) .out適合用在須要retrun多個返回值的地方,而ref則用在須要被調用的方法修改調用者的引用的時候。
-
參數數組須要params關鍵字:
給參數數組提供形參:排序
Void Test(params int []test);繼承
test(1,2,3);索引
int[]a={1,2,3};內存
test(a);
-
命名參數:
將函數形參位置調換入參數。
Int test(int a,int b,int c){};
test(a:5,c:6,b:7);
-
靜態變量static(定義後不能訪問類的實例成員,但能被實例成員訪問) 常量const:
靜態產量聲明後可透過直接經過類名使用,而const聲明的變量必須在一開始初始賦值而且不能更改。
-
屬性:表明類的實例或類總的一個數據項的成員。使用屬性看起來很是像寫入或讀取一個字段,語法是相同的。
屬性特徵:
- 1):它是命名的類成員;
- 2) :它能夠被賦值和讀取,然而和字段不一樣,屬性是一個函數成員;
- 3) :它不爲數據存儲分配內存,它執行代碼。
- 4) :屬性是指定的一個組倆個分配的、稱爲訪問器的方法。
Set訪問器爲屬性賦值,get訪問器從屬性獲取值。
set訪問器:擁有一個單獨的、隱式的值參,名稱爲value,與屬性類型相同,擁有一個返回類型void。
get訪問器:沒有參數,擁有一個與屬性類型相同的返回類型。
自動屬性實現:
public int such{
get;set;}必須+封號
-
readonly修飾符:
做用相似const,一旦被設置就不能改變。Const字段只能在字段聲明時初始化,而readonly能夠先聲明隨後初始化。
10.索引器:
相似屬性,屬性一般表示單獨數據成員,索引器一般表示多個數據成員。
索引器沒有名稱。在名稱獲得位置是關鍵字this。參數列表在中括號內,參數列表必須聲明一個參數。
訪問器的訪問修飾符有幾個限制:
- 1)、僅當成員既有get也有set訪問器時;
- 2)、雖然倆個訪問器都必須出現,但它們只能有一個修飾符;
- 3)、訪問器的訪問修飾符必須比成員的訪問級別有更嚴格的限制性。
public->protected internal->protected->private->internal
returnType this[Type type1]{
get{
}
set{}
}
11.分佈類型和分佈方法修飾符:partial。(聲明東西必須相同)
partial class Myclass{
partial void PrintSum(int a,int b);
public void add(int a,int b){
Console.Write({0},a+b);}
}
Partial class Myclass{
partial void PrintSum(int x ,int y){
Console.WriteLine(「Sum is{0}」,x+y);
}
class Program{
Static void Main(){
var ma=new Myclass();
mc.add(5,6);
}}
12.數組繼承的有用成員 繼承自System.Array
Rank 屬性 實例 獲取數組的維度
Length 屬性 實例 獲取數組中全部維度的元素總和
GetLength 方法 實例 返回數組的指定維度的長度
Clear 方法 靜態 將某一範圍內的元素設置爲0或null
Sort 方法 靜態 在一維數組中對元素進行排序
BinarySearch 方法 靜態 使用二進制搜索,搜索一維數組中的值
Clone 方法 實例 進行數組的淺複製——對於值類型數組和引用類型數組,都只複製元素
IndexOf 方法 靜態 返回一維數組碰見第一個值
Reverse 方法 靜態 反轉一維數組中的某一範圍的實例
GetUpperBound 方法 實例 獲取數組維度上限