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

首頁(yè) > 開發(fā) > 綜合 > 正文

C# 語(yǔ)言規(guī)范--1.2 類型

2024-07-21 02:30:01
字體:
供稿:網(wǎng)友

c# 支持兩種類型:“值類型”和“引用類型”。值類型包括簡(jiǎn)單類型(如 char、int 和 float)、枚舉類型和結(jié)構(gòu)類型。引用類型包括類 (class) 類型、接口類型、委托類型和數(shù)組類型。


值類型與引用類型的區(qū)別在于值類型的變量直接包含其數(shù)據(jù),而引用類型的變量則存儲(chǔ)對(duì)象引用。對(duì)于引用類型,兩個(gè)變量可能引用同一對(duì)象,因此對(duì)一個(gè)變量的操作可能影響另一個(gè)變量所引用的對(duì)象。對(duì)于值類型,每個(gè)變量都有自己的數(shù)據(jù)副本,對(duì)一個(gè)變量的操作不可能影響另一個(gè)變量。


示例

using system;

class class1

{

   public int value = 0;

}

class test

{

   static void main() {

      int val1 = 0;

      int val2 = val1;

      val2 = 123;

      class1 ref1 = new class1();

      class1 ref2 = ref1;

      ref2.value = 123;

      console.writeline("values: {0}, {1}", val1, val2);

      console.writeline("refs: {0}, {1}", ref1.value, ref2.value);

   }

}


顯示了這種區(qū)別。運(yùn)行該程序,可見下列輸出:

values: 0, 123

refs: 123, 123


給局部變量 val1 賦值不會(huì)影響局部變量 val2,這是因?yàn)閮蓚€(gè)局部變量都是值類型(int 類型),每個(gè)局部變量都保存著各自的數(shù)據(jù)。相反,賦值 ref2.value = 123; 則會(huì)影響到 ref2,因?yàn)?ref1 和 ref2 所引用的其實(shí)是同一個(gè)對(duì)象。


應(yīng)對(duì)代碼行

console.writeline("values: {0}, {1}", val1, val2);

console.writeline("refs: {0}, {1}", ref1.value, ref2.value);


做進(jìn)一步解釋,因?yàn)榉椒?console.writeline 的某些字符串格式化行為較復(fù)雜,它所需的參數(shù)數(shù)目是可變的。第一個(gè)參數(shù)是字符串,它可能包含類似 {0} 和 {1} 這樣編了號(hào)的占位符。每個(gè)占位符都引用一個(gè)尾隨參數(shù):{0} 引用第二個(gè)參數(shù),{1} 引用第三個(gè)參數(shù),依此類推。在將輸出發(fā)送到控制臺(tái)之前,每個(gè)占位符都會(huì)被替換成它所引用的參數(shù)的值,并按規(guī)定的格式顯示。


開發(fā)人員可以通過枚舉聲明和結(jié)構(gòu)聲明定義新的值類型,并可通過類聲明、接口聲明和委托聲明定義新的引用類型。示例

using system;

public enum color

{

   red, blue, green

}

public struct point

{

   public int x, y;

}

public interface ibase

{

   void f();

}

public interface iderived: ibase

{

   void g();

}

public class a

{

   protected virtual void h() {

      console.writeline("a.h");

   }

}

public class b: a, iderived

{

   public void f() {

      console.writeline("b.f, implementation of iderived.f");

   }

   public void g() {

      console.writeline("b.g, implementation of iderived.g");

   }

   override protected void h() {

      console.writeline("b.h, override of a.h");

   }

}

public delegate void emptydelegate();

列舉了每種類型聲明的示例。后面幾節(jié)將闡明關(guān)于類型聲明的細(xì)節(jié)。

商業(yè)源碼熱門下載www.html.org.cn

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 镶黄旗| 天水市| 水城县| 阿城市| 新邵县| 太白县| 九龙县| 神农架林区| 九江县| 神木县| 凉山| 海门市| 凤冈县| 五指山市| 石家庄市| 介休市| 金昌市| 达孜县| 南部县| 清流县| 蒲城县| 赣州市| 沽源县| 中山市| 遂宁市| 普陀区| 龙川县| 普兰县| 乐东| 宜兰市| 集安市| 岢岚县| 五寨县| 晋宁县| 武穴市| 铜陵市| 阿坝| 阿拉尔市| 南丹县| 湘潭市| 大荔县|