国产探花免费观看_亚洲丰满少妇自慰呻吟_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://www.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://www.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ā)表
主站蜘蛛池模板: 馆陶县| 昭苏县| 休宁县| 同江市| 土默特左旗| 淄博市| 福泉市| 迁西县| 绥滨县| 山西省| 古交市| 易门县| 临清市| 全椒县| 山东| 静乐县| 元阳县| 岳阳县| 五寨县| 怀集县| 东乡县| 会泽县| 辛集市| 福建省| 岑巩县| 定远县| 亚东县| 包头市| 鸡东县| 舞钢市| 揭阳市| 淮滨县| 赣州市| 韶关市| 泗洪县| 玛多县| 浏阳市| 钦州市| 电白县| 即墨市| 娄烦县|