一、核心C#(第二部分)
---恢復內容開始---
預定義數據類型
值類型和引用類型。
1.存儲在內存的不同地方:值類型存儲在堆棧中,而引用類型存儲在托管堆上。注意區分某個類型是值類型還是引用類型,因為這種存儲位置的不同會有不同的影響。例如:int 是值類型,這表示下面的語句會在內存的兩個地方存儲值20:
i = 20; j = i;但考慮下面的代碼。這段代碼假定已經定義了一個類Vector,Vector是一個引用類型,它有一個int類型的成員變量Value:
Vector x, y; x = new Vector(); x.Value = 30; y = x; Console.WriteLine(y.value); y.Value = 50; Console.WriteLine(x.Value)要理解的重要一點是在執行這段代碼后,只有一個Vector對戲那個。x和y都指向包含該對象的內存位置。因為x和y是引用類型的變量,聲明這兩個變量只保留了一個引用---而不會實例化給定類型的對象。兩情況下都不會真正的創建對象。要創建對象,就必須使用new關鍵字,如上所示。因為x和y引用同一對象,所以對x的修改會影響y,反之亦然。因此上面的代碼會顯示30和50。
?
C#認可的基本預定義類型并沒有內置于C#語言中,而是內置于.Net Framework中。例如,在C#中聲明一個int類型的數據時,聲明的實際上是.Net結構System.Int32的一個實例。這聽起來似乎很深奧,但其意義深遠:這表示在語法上,可以把所有的基本數據類型看成支持某些方法的類。例如,要把int i 轉換為string,可以編寫下面的代碼:
string s = i.ToString();應強調的是,這種便利語法的背后,類型實際上任存儲仍為基本類型。基本類型在概念上用.Net結構表示,所以肯定沒有性能損失。
一些C#類型的名稱與C++和Java類型一致,但其定義不同。
在C#中,int類型總是32位帶符號的整數,而在C++中,int是帶符號的證書,但其位數取決于平臺(在Windows上是32位)。
在C#中,所有數據類型都以與平臺無關性的方式定義,以備將來C#和.Net遷移到其他平臺上。
namespace EnumStudy {class Program{static void Main(string[] args){EnumMyStudy es = new EnumMyStudy();es = EnumMyStudy.優秀;WriteStudy(es);EnumMyStudy es1 = new EnumMyStudy();es1 = EnumMyStudy.及格;EnumMyStudy es2 = (EnumMyStudy)Enum.Parse(typeof(EnumMyStudy), es1.ToString(), true);Console.WriteLine(es2.ToString() + " " + (int)es2 + " "+ es2);Console.ReadKey();}static void WriteStudy(EnumMyStudy es){switch (es){case EnumMyStudy.優秀:{Console.WriteLine("您的學習成績為:優秀");}break;case EnumMyStudy.良好:{Console.WriteLine("您的學習成績為:良好");}break;case EnumMyStudy.及格:{Console.WriteLine("您的學習成績為:及格");}break;case EnumMyStudy.不及格:{Console.WriteLine("您的學習成績為:不及格");}break;case EnumMyStudy.差:{Console.WriteLine("您的學習成績為:差");} break;}}} }??
?
轉載于:https://www.cnblogs.com/Dean27/p/6029591.html
總結
以上是生活随笔為你收集整理的一、核心C#(第二部分)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8-2:C++继承之父类和子类对象赋值转
- 下一篇: 能源项目xml文件 -- springM