欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Question:基于C#連續(xù)賦值的面試題(解答)

 更新時間:2013年05月14日 10:40:09   作者:  
本篇文章是對C#中連續(xù)賦值的面試題進行了解答,需要的朋友參考下
題目在這里:Question:基于C#連續(xù)賦值的面試題介紹

在msdn中,對=號操作符的說明如下:
image 
賦值運算符 ( =) 將右操作數(shù)的值存儲在左操作數(shù)表示的存儲位置、屬性或索引器中,并將值作為結(jié)果返回。
操作數(shù)的類型必須相同(即右操作數(shù)必須可以隱式轉(zhuǎn)換為左操作數(shù)的類型)。
首先來看
int x,y,z;X = y = z = 1;
1:z=1,將1賦值給z,接著返回1,
2:y=(z=1),將返回的1賦值給y,并返回1,
3:x=(y=(z=1)),將表達式2的結(jié)果1賦值給x。
接著看第一道題:
const int x=1;short y;object z;z=y=x;

首先要說明的是x是const,因為const是編譯時常量,所以
Z=y=x;在編譯的時候就會變成z=y=1。
1:y=1,因為y是short,所以1被轉(zhuǎn)換為short,所以返回值為1(short);
2:將y=1返回的結(jié)果,也就是1(short)賦值給z,所以z是1(short)裝箱后的對象,
GetType返回System.Int16.
值得一提的是,如果你將上面的const int x=1中的const去掉,代碼如下:
int x=1;short y;object z;z=y=x;

因為x是Int32,y是Int16,因為Int32無法隱式轉(zhuǎn)換成Int16.所以這段代碼無法通過編譯:
clip_image002
接著考慮第二題:

復(fù)制代碼 代碼如下:

class C
 {
     private string x;
     public string X
     {
         get { return x ?? ""; }
         set { x = value; }
     }
 }

static void Main()
{
    C c = new C();
    object z;
    z = c.X = null;

    //下面兩句話輸出什么
    System.Console.WriteLine(z == null);
    System.Console.WriteLine(c.X == null);
}

關(guān)鍵就是分析:z=c.X=null;

1:c.X=null;調(diào)用c的setX方法,設(shè)置x=null,并且將null作為值返回。

2:z=(c.X=null);因為c.X=null,返回了null,所以將null賦值給z,z此時為null;

3:Console.WriteLine(z==null),返回True;

4:Console.WriteLine(c.X==null),調(diào)用c的getX方法,方法返回””,所以c.X==null,返回False。

你都做對了嗎?

相關(guān)文章

  • WPF+SkiaSharp實現(xiàn)自繪彈幕效果

    WPF+SkiaSharp實現(xiàn)自繪彈幕效果

    這篇文章主要為大家詳細(xì)介紹了如何利用WPF和SkiaSharp實現(xiàn)自制彈幕效果,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定幫助,感興趣的小伙伴可以了解一下
    2022-09-09
  • c# 顏色選擇控件的實現(xiàn)代碼

    c# 顏色選擇控件的實現(xiàn)代碼

    這篇文章主要介紹了c# 顏色選擇控件的實現(xiàn)代碼,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-04-04
  • C#編譯器對局部變量的優(yōu)化指南

    C#編譯器對局部變量的優(yōu)化指南

    這篇文章主要給大家介紹了關(guān)于C#編譯器對局部變量的優(yōu)化指南,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • c#之事件用法

    c#之事件用法

    這篇文章介紹了c#中事件的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • c# Newtonsoft 六個值得使用的特性(上)

    c# Newtonsoft 六個值得使用的特性(上)

    這篇文章主要介紹了c# Newtonsoft 六個值得使用的特性,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • c# 用ELMAH日志組件處理異常

    c# 用ELMAH日志組件處理異常

    這篇文章主要介紹了c# 用ELMAH日志組件處理異常,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01
  • C#之繼承實現(xiàn)

    C#之繼承實現(xiàn)

    本文詳細(xì)講解了C#之繼承的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • winform實現(xiàn)關(guān)閉按鈕失效的兩種方法

    winform實現(xiàn)關(guān)閉按鈕失效的兩種方法

    這篇文章主要介紹了winform實現(xiàn)關(guān)閉按鈕失效的兩種方法,實例分析了WinForm實現(xiàn)關(guān)閉按鈕失效的原理與所涉及的相關(guān)技巧,需要的朋友可以參考下
    2015-09-09
  • 基于C#實現(xiàn)一個簡單的FTP操作工具

    基于C#實現(xiàn)一個簡單的FTP操作工具

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實現(xiàn)一個簡單的FTP操作工具,可以實現(xiàn)FTP上傳、下載、重命名、刷新、刪除功能,感興趣的可以了解一下
    2022-08-08
  • .net 一些無法catch的異常

    .net 一些無法catch的異常

    .net 一些無法catch的異常,需要的朋友可以參考一下
    2013-04-04

最新評論