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

首頁 > 學院 > 開發(fā)設計 > 正文

值類型與引用類型(特殊的string) Typeof和GetType() 靜態(tài)和非靜態(tài)使用 參數(shù)傳遞 相關知識

2019-11-17 02:32:43
字體:
來源:轉載
供稿:網(wǎng)友

值類型與引用類型(特殊的string) Typeof和GetType() 靜態(tài)和非靜態(tài)使用 參數(shù)傳遞 相關知識

學習大神博客鏈接: http://m.survivalescaperooms.com/zhili/category/421637.html

一 值類型與引用類型

需要注意的string 是特殊類型的引用類型.

使用方法: == 比較的是棧里面的值, 值類型比較值, 對象(除字符串)比較的是棧里面的地址.

equal比較的是實際的值,是object里面的虛方法重寫,重寫時最好重寫getHashCode()方法.

如下為代碼例子

static void Main(string[] args)        {            object m1 =1 ;            object m2 = 1;            Console.WriteLine(m1==m2); // False;因為比較的是引用,肯定不是同一個對象.            Console.WriteLine(m1.Equals(m2)); //True. 因為比較的是對象對應的值.            Console.Read();}例子2:   static void Main(string[] args)        {            string str1 = "ZhangSan";            string str2 = "ZhangSan";            string str3 = new string(new char[] { 'z', 'h' });            string str4 = new string(new char[] { 'z', 'h'});            Console.WriteLine("str1 == str2  " + (str1 == str2).ToString()); //True            Console.WriteLine("str1 Equals str2  " + str1.Equals(str2));//True                      Console.WriteLine("str3 == str4 " + (str3 == str4).ToString());//True            Console.WriteLine("str3 Equals str4 " + str3.Equals(str4));          //True.                     Console.Read();        } //總結: 因為string重寫了==方法.用于比較值.

二 Typeof 和 GetType() 區(qū)別

  1. typeof 是運算符,而 GetType() 是方法
  2. typeof 獲得類型的System.Type對象,GetType()獲得當前實例的Type,
  3. GetType()是基類System.Object的方法,只有建立了一個實例之后才能夠被調用
  4. typeof的參數(shù)只能是int, string, class,自定義類型,不能為具體實例,否則編譯器會報錯
static void Main(string[] args)        {            object m1 = 1;            object m2 = 1;            // ValueType是引用類型,因為它是類,所以返回為false            Console.WriteLine(typeof(ValueType).IsValueType); //False. ValueType是類!!!            Console.WriteLine(m1.GetType().IsValueType);//Ture            Console.Read();        }

三 靜態(tài)與非靜態(tài).

說的比較透徹的是, 鏈接: ([C#基礎知識系列]全面解析C#中靜態(tài)與非靜態(tài))http://m.survivalescaperooms.com/zhili/archive/2013/06/16/StaticAndNonStatic.html

個人使用總結: 想不實力化類-->創(chuàng)建靜態(tài)類-->靜態(tài)屬性-->靜態(tài)成員是PRivate的-->使用靜態(tài)方法一般用于作為通用的工具類來實現(xiàn).

文中總結有: 1, 靜態(tài)方法不能被標識為virtual、abstract或override,靜態(tài)方法可以被派生訪問,但是不能被派生類重寫.

2, 構造函數(shù)執(zhí)行過程:

靜態(tài)成員分配內存空間-->靜態(tài)成員初始化-->執(zhí)行靜態(tài)構造函數(shù)-->執(zhí)行實例成員初始化-->執(zhí)行實例構造函數(shù)

IL 中.ctor代表實例構造器.

四 參數(shù)傳遞

對于按值傳遞,不管是值類型還是引用類型的按值傳遞,都是傳遞實參的一個拷貝.

只是值類型時,此時傳遞的是實參實例的一個拷貝(也就是值類型值的一個拷貝)

而引用類型時,此時傳遞的實參引用的副本。

對于按引用傳遞,傳遞的都是參數(shù)地址,也就是實例的指針.(加ref and out 關鍵字)

注意: string 是特殊的引用類型. 傳遞是實際的值,想要方法傳遞引用, 即外面的值發(fā)生改變, 需要加ref out 參數(shù).

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 湾仔区| 望奎县| 凌海市| 北海市| 平顶山市| 涿州市| 邵阳市| 洛扎县| 鹤山市| 普洱| 东安县| 麦盖提县| 安乡县| 荣昌县| 麦盖提县| 宿松县| 饶阳县| 噶尔县| 方城县| 浦城县| 保德县| 岢岚县| 依兰县| 合阳县| 遂川县| 荃湾区| 深泽县| 巫山县| 平乐县| 广南县| 鹤庆县| 温泉县| 昌邑市| 青铜峡市| 和平区| 社旗县| 师宗县| 闽清县| 刚察县| 交城县| 临江市|