程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> c#3.0:使用傳遞出來的匿名類型

c#3.0:使用傳遞出來的匿名類型

編輯:關於C語言

今天看了csdn上的一段視頻講解c#3.0的,雖然主講人有點口吃但我還是堅持 聽完了。裡面有一句話我引起了我的興趣,如果在結構上相同我們就可以對一個 匿名類型進行強轉。看來在關鍵時刻我們還是可以直接操作匿名類型的雖然有點 麻煩。

我們知道匿名類型實際上就是.Net自動生成的一個泛型類,並且只要字段名 相同類型相同就會使用同一個匿名類型。所以我們只要類用這個特性就可以把一 個通過參數傳遞的匿名類型進行強轉了。

public T CastAnonymous<T>(object anonymous, T anonymousType)
{
   return (T)anonymous;
}
class User
{
   public string Name { get; set; }
}
public static void Main()
{
   var u = new User{ Name = "Lucifer" };
   var a = new { a = 26; u.Name; b = false };
   Print(a);
}
public void Print(object anonymous)
{
   var a = CastAnonymous(anonymous, new { a=0, Name = "", b = false });
   Console.WriteLine{"{0} - {1} - {2}", a.a, a.Name, a.b};
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved