国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 揭西县| 景谷| 旬阳县| 清徐县| 达拉特旗| 桂东县| 南昌市| 阿城市| 阳城县| 榆林市| 四会市| 北宁市| 万盛区| 怀宁县| 宁安市| 英山县| 得荣县| 宜良县| 大厂| 彰化县| 万荣县| 公主岭市| 香河县| 和林格尔县| 阿荣旗| 历史| 兰州市| 巫山县| 新余市| 综艺| 高要市| 青铜峡市| 鄢陵县| 石屏县| 如皋市| 巴东县| 慈利县| 崇阳县| 土默特左旗| 新巴尔虎右旗| 大洼县|