国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#應(yīng)該知道的簡單的知識點

2024-09-07 17:05:13
字體:
供稿:網(wǎng)友

   1.本地變量

  一看這個標(biāo)題你可能會一愣,這是個什么東東。看個小例子:

  static void main()

  {

  int a=10;

  MyClass mc=new MyClass();

  }

  呵呵,這里的a與mc就是本地變量,它和字段一樣,也保存數(shù)據(jù)。字段通常保存和對象狀態(tài)有關(guān)的數(shù)據(jù),而創(chuàng)建本地變量經(jīng)常用于保存本地或臨時數(shù)據(jù)。呵呵,簡單吧,但是它和實例字段有何區(qū)別:

  實例字段

  本地變量

  生存期 從實例創(chuàng)建開始,直到實例不再被訪問

  從它在塊中被聲明開始,到塊執(zhí)行結(jié)束

  隱式初始化 初始化成該類的默認(rèn)值 沒有隱式初始化。如果變量在使用之前沒有被賦值,編譯器將報錯

  存儲區(qū)域 由于實例字段是類的成員,所有的字段都存儲在堆里,無論它是指類型還是引用類型 值類型:存儲在棧里

  引用類型:引用存儲在棧里,數(shù)據(jù)存放在堆里

  2.var 關(guān)鍵字

  我們知道var可以自動推斷變量的類型,如上代碼,我們可以發(fā)現(xiàn)在聲明開始部分提供類型名時,編譯器能從初始化語句的右邊推斷出來它的類型,所以,在聲明的開始部分包括顯示的類型名多余的。

  為了避免這種多余,可以在聲明的開始部分的顯示類型名的位置使用新的關(guān)鍵字var。上面代碼可以改成:

  static void main()

  {

  var a=10;

  var mc=new MyClass();

  }

  3.值參數(shù)

  使用值參數(shù),通過將實參的值復(fù)制到形參的方式把數(shù)據(jù)傳遞給方法。方法被調(diào)用時,系統(tǒng)做如下操作:

  在棧中為形參分配空間

  將實參的值復(fù)制給形參

  4.引用參數(shù)(ref)

  不會為形參在棧上分配內(nèi)存

  實際情況是,形參的參數(shù)名將作為實參變量的別名,指向相同的內(nèi)存位置

  實參必須是變量,在用作實參前必須被賦值。如果是引用類型變量,可以賦值一個引用或者null

  5.輸出參數(shù)(out)

  在方法內(nèi)部,輸出參數(shù)在能夠使用之前必須被賦值。這就意味著參數(shù)的初始值是不起作用的,所以沒有必要在方法調(diào)用前為參數(shù)賦值。

  在方法返回之前,方法內(nèi)部任何路徑都必須為所有輸出參數(shù)進(jìn)行一次賦值。

  如下代碼:

  public void Add(out int outValue) { int var1=outValue+2; }上述代碼輸出參數(shù)在方法賦值之前被讀取將會報錯。

  6.屬性(set,get)

  屬性是一個函數(shù)成員

  它不為數(shù)據(jù)的存儲分配內(nèi)存

  它可以執(zhí)行代碼

  set訪問器擁有一個單獨的隱式的值參,名稱為Value,與屬性的類型相同且擁有一個返回類型void

  get訪問器沒有參數(shù),擁有一個與屬性類型相同的返回類型。

  7.對象初始化語句

  我們都知道創(chuàng)建一個對象是由new 后面跟著一個類構(gòu)造函數(shù)及其參數(shù)列表組成。

  對象初始化語句擴(kuò)展了創(chuàng)建語法,在表達(dá)式的尾部放置了一組成員初始化的語句。允許我們創(chuàng)建新的對象實例時,設(shè)置字段和屬性的值。

  該語法有兩種形式:一種形式是包括構(gòu)造函數(shù)的參數(shù)列表,另一種是不包括。注意第一種形式可以省略圓括號。

  new TypeName {FieldOrProp=InitExpr,FieldOrProp=InitExpr,…}

  new TypeName {FieldOrProp=InitExpr,FieldOrProp=InitExpr,…}

  示例如下:

  public static void main()

  {

  Point p1=new Point();

  Point p2=new Point{X=4,Y=5,Z=6};

  Point p3=new Point(9){X=7,Y=8};

  }

  public class Point

  {

  public int X=1;

  public int Y=2;

  public int Z=3;

  public Point(int z) { Z=z; }

  }

  8.this關(guān)鍵字

  this關(guān)鍵字在類中使用,是對當(dāng)前實例的引用。它只能用在下列類成員的代碼中

  實例構(gòu)造函數(shù)

  實例方法

  屬性和索引器的實例訪問權(quán)

  由于靜態(tài)成員不是實例的一部分,所以不能在任何靜態(tài)函數(shù)成員的代碼中使用this關(guān)鍵字。更適當(dāng)?shù)恼f,this用于下列目的:

  用于區(qū)分類的成員和本地變量或參數(shù)

  做為調(diào)用方法的實參

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 汽车| 宣化县| 永泰县| 新津县| 肥乡县| 建水县| 高青县| 金平| 吴堡县| 四子王旗| 凭祥市| 屯门区| 安康市| 新龙县| 阳曲县| 额敏县| 宿州市| 唐山市| 郸城县| 沂南县| 收藏| 全州县| 西乌珠穆沁旗| 吉木萨尔县| 库尔勒市| 五指山市| 红河县| 武定县| 西充县| 文成县| 湖北省| 敖汉旗| 浦东新区| 清原| 彰化市| 富宁县| 上蔡县| 措美县| 西青区| 乌拉特中旗| 仙游县|