C# – 泛型的 where 和 default

嗯~
今天試著用用看泛型,大概記錄一下~
default 在泛型裡面,主要是用來替代 null 和 0,也就是無…

泛型代码中的默认关键字(C# 编程指南)

簡單來說,就是當使用泛型時,無法預估該型別是一個類別或是一個數值。
像是…

 public class GenericList<T>
{
     public void DoSometing()
     {
         T temp = 0;            // 錯誤,倘若 T 是類別的話,給 0 是違法的
         T temp2 = null;     // 錯誤,倘若 T 是一般數值,給 null 是違法的
         T temp3 = default(T);     // 正確,default 會根據 T 的狀況給 0 或者 null
     }
}


就是這樣啦!



接著是 where ~
這是在我想使用 new 這個關鍵字才發現的。
雖然最後還是把使用到的方法給搬走了就是

where(C# 参考)

对C#泛型中的new()约束的一点思考
C# where子句

之前在書中似乎沒有看到這個關鍵字,一點印象都沒有…
這裡就提一下泛型中使用 new 的方式,其餘更深入的用法有機會用到再說吧~

 public class MyGenericClass <T> where T: new()
{
     T item = new T();
}

where 出現在<>的後方,可以多重使用、組合,詳見 C# where子句 的內文。
我在用到的時候,只需要對 new 做約束,另外繼承一個類別,應該是像這樣…

 class MyGenericClass<T> : GameComponent
                   where T : new()
{…}

先這樣囉~

–End

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s