C# default關鍵字
生活随笔
收集整理的這篇文章主要介紹了
C# default關鍵字
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
據我所知,default關鍵字在C#有兩種用法,一是用在Switch語句中,二是用在泛型中。
兩種用法分別如下:
1、在switch語句中,如果沒有任何 case 表達式與開關值匹配,則控制傳遞給跟在可選 default 標簽后的語句。如果沒有 default 標簽,則控制傳遞到 switch 以外。 ????? int?id?=?int32.Parse(Console.ReadLine());
??????switch?(id)
??????{
??????????case?1:?
??????????????Console.WriteLine("Lee");
??????????????break;
??????????case?2:
??????????????Console.WriteLine("Tang");
??????????????break;
??????????default:
????????????? Console.WriteLine("Sorry,?no?one?match?this?ID!");
??????????????break;
??????}
2、在泛型類和泛型方法中,在預先未知以下情況時,如何將默認值分配給參數化類型 T:
????? T 是引用類型還是值類型,如果 T 為值類型,則它是數值還是結構。
public?class?GenericClass<T>
{
????public?T?DoSTH(arg)
????{
????????T?temp?=?default(T);
????????if?(arg?!=?null)
????????{
????????????temp?=?arg.Favs;
????????}
????????return?temp;
????}
????//...
}
??? 給定參數化類型 T 的一個變量 t,只有當 T 為引用類型時,語句 t = null 才有效;只有當 T 為數值類型而不是結構時,語句 t = 0 才能正常使用。解決方案是使用 default 關鍵字,此關鍵字對于引用類型會返回空,對于數值類型會返回零。對于結構,此關鍵字將返回初始化為零或空的每個結構成員,具體取決于這些結構是值類型還是引用類型。
兩種用法分別如下:
1、在switch語句中,如果沒有任何 case 表達式與開關值匹配,則控制傳遞給跟在可選 default 標簽后的語句。如果沒有 default 標簽,則控制傳遞到 switch 以外。 ????? int?id?=?int32.Parse(Console.ReadLine());
??????switch?(id)
??????{
??????????case?1:?
??????????????Console.WriteLine("Lee");
??????????????break;
??????????case?2:
??????????????Console.WriteLine("Tang");
??????????????break;
??????????default:
????????????? Console.WriteLine("Sorry,?no?one?match?this?ID!");
??????????????break;
??????}
2、在泛型類和泛型方法中,在預先未知以下情況時,如何將默認值分配給參數化類型 T:
????? T 是引用類型還是值類型,如果 T 為值類型,則它是數值還是結構。
public?class?GenericClass<T>
{
????public?T?DoSTH(arg)
????{
????????T?temp?=?default(T);
????????if?(arg?!=?null)
????????{
????????????temp?=?arg.Favs;
????????}
????????return?temp;
????}
????//...
}
??? 給定參數化類型 T 的一個變量 t,只有當 T 為引用類型時,語句 t = null 才有效;只有當 T 為數值類型而不是結構時,語句 t = 0 才能正常使用。解決方案是使用 default 關鍵字,此關鍵字對于引用類型會返回空,對于數值類型會返回零。對于結構,此關鍵字將返回初始化為零或空的每個結構成員,具體取決于這些結構是值類型還是引用類型。
轉載于:https://www.cnblogs.com/millen/archive/2009/03/05/1403894.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的C# default關鍵字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IE7关闭窗口不提示确认的js
- 下一篇: 部署承载于 Internet 信息服务中