中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

將不確定(ding)變為確定(ding)~對(dui)象被new后什么(me)時候會拋(pao)System.NullReferenceException

回到目錄

這可能(neng)并不是一(yi)個(ge)(ge)問題(ti),因為它(ta)(ta)很多時(shi)間會(hui)(hui)被(bei)我們(men)(men)所忽視,我們(men)(men)在開(kai)發時(shi),在頁面上(shang)使(shi)(shi)(shi)用(yong)(yong)(yong)一(yi)個(ge)(ge)對(dui)象的(de)一(yi)個(ge)(ge)屬(shu)性(xing),當對(dui)象被(bei)new后,可能(neng)還沒有(you)賦值也可能(neng)返回給(gei)它(ta)(ta)的(de)值為null,那(nei)這時(shi)使(shi)(shi)(shi)用(yong)(yong)(yong)它(ta)(ta)里(li)面的(de)屬(shu)性(xing),它(ta)(ta)會(hui)(hui)拋(pao)System.NullReferenceException嗎?當我們(men)(men)對(dui)象不為null,我們(men)(men)使(shi)(shi)(shi)用(yong)(yong)(yong)這個(ge)(ge)對(dui)象的(de)子對(dui)象,這個(ge)(ge)子對(dui)象如果(guo)為null,使(shi)(shi)(shi)用(yong)(yong)(yong)它(ta)(ta)的(de)屬(shu)性(xing),它(ta)(ta)會(hui)(hui)拋(pao)System.NullReferenceException嗎?

這是一個(ge)看似簡單的問題(ti),但對于它的結果可能(neng)我們一時并不能(neng)確定(ding),還是用機器來證明它吧

兩個類型:

1         /// <summary>
2         /// 小u
3         /// </summary>
4         class u
5         {
6             public string name { get; set; }
7             public int age { get; set; }
8         }
        /// <summary>
        /// 大U
        /// </summary>
        class U
        {
 public int ID { get; set; }
public string RealName{get;set;}
/// <summary> /// 小u是(shi)大(da)U的(de)屬性 /// </summary> public u u { get; set; } }
1   U u = new U();
2   Console.WriteLine(u.ID);
3   Console.WriteLine(u.u.age);

我們(men)(men)可以看到小u是(shi)大U的(de)一(yi)個屬性(xing),我們(men)(men)建立(li)大U時,如果不為小u賦值,它是(shi)null,而(er)屬性(xing)ID默認值為0,我們(men)(men)輸出(chu)看一(yi)下

因為(wei)u是null,所以,我們輸出(chu)u中的屬性會怎(zen)樣?

 Console.WriteLine(U.u.age);

OK,這時(shi),系(xi)統就會(hui)拋出異常了,未將對象(xiang)設置到對象(xiang)的實例上,呵(he)(he)呵(he)(he),一個(ge)結(jie)論產生:

當對象被new后,它內部的簡單類型的屬性可以訪問,輸出它的默認值,而復雜類型的屬性,如果為null,它也是不能訪問的!

 

 回到目錄

posted @ 2013-01-10 17:32  張占嶺  閱讀(820)  評論(0)    收藏  舉報