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

首頁 > 編程 > C# > 正文

C#中類與結構的區別實例分析

2020-01-24 02:30:01
字體:
來源:轉載
供稿:網友

類與結構是C#程序設計中基本的數據類型,而初學者往往不能很好的分清二者之間的區別。本文就以附帶實例形式加以說明。具體如下:

一、基本概念:

類:引用類型,存儲在堆中,棧中存儲引用地址,在方法的傳輸中只是傳輸地址的引用,修改指向的對象會影響原有對象的值,傳輸中消耗內存小

結構:值類型,存儲在堆棧中,傳輸過程中傳輸整個對象的副本,修改指向對象的值不會影響原有的對象,傳輸中消耗內存大

二、實例代碼如下:

class Program{    static void Main(string[] args)    {      /*聲明類對象 并賦值10*/      TestClass TC1 = new TestClass();      TC1.x = 10;      TC1.y = "10";      Console.WriteLine("/*聲明類對象TC1 并賦值10*/");      Console.WriteLine("TC1 x={0} y={0}", TC1.x, TC1.y);      TC1.x = 20;      TC1.y = "20";      Console.WriteLine("/*修改類對象 TC1 值為20*/");      Console.WriteLine("TC1 x={0} y={0}", TC1.x, TC1.y);      /*執行類傳遞 并修改傳遞后的值*/      Console.WriteLine("/*創建類對象 TC2 指向 TC1,并修改 值為10*/");      TestClass TC2 = TC1;      TC2.x = 10;      TC2.y = "10";      Console.WriteLine("/*類傳輸過程中傳遞的是存儲在堆棧中的引用地址 傳輸中消耗內存小 并沒有傳送存儲在堆中的值 所以原有對象受到影響*/");      Console.WriteLine("TC1 x={0} y={0}", TC1.x, TC1.y);      Console.WriteLine("TC2 x={0} y={0}", TC2.x, TC2.y);      /*聲明結構對象*/      Console.WriteLine("/*聲明結構對象TS1 并賦值10*/");      TestStruct TS1 = new TestStruct();      TS1.x = 10;      TS1.y = "10";      Console.WriteLine("TS1 x={0} y={0}", TS1.x, TS1.y);      Console.WriteLine("/*修改結構對象 TS1 值為20*/");      TS1.x = 20;      TS1.y = "20";      Console.WriteLine("TS1 x={0} y={0}", TS1.x, TS1.y);      /*執行結構傳遞 并修改傳遞后的值*/      Console.WriteLine("/*創建結構對象 TS2 指向 TS1,并修改 值為10*/");      TestStruct TS2 = TS1;      TS2.x = 10;      TS2.y = "10";      Console.WriteLine("/*結構傳輸過程中 會傳遞整個對象的副本 傳輸中消耗內存大 所以修改對原有對象不受影響*/");      Console.WriteLine("TS1 x={0} y={0}", TS1.x, TS1.y);      Console.WriteLine("TS2 x={0} y={0}", TS2.x, TS2.y);      Console.ReadLine();    }}public class TestClass{  public int x;  public string y;}public struct TestStruct{  public int x;  public string y;}

代碼運行結果如下圖所示:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 镇安县| 楚雄市| 仙桃市| 巍山| 唐山市| 繁峙县| 姚安县| 崇信县| 淳化县| 江都市| 南华县| 乐山市| 伊宁市| 双辽市| 怀远县| 合山市| 嘉禾县| 胶州市| 电白县| 横峰县| 镇安县| 襄垣县| 桃江县| 德令哈市| 哈密市| 大名县| 大渡口区| 屯留县| 尼勒克县| 巴林左旗| 明水县| 留坝县| 和政县| 玉溪市| 龙南县| 石河子市| 蚌埠市| 绩溪县| 安岳县| 恩平市| 易门县|