VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Objective-C编程 >
  • c#3.0使用传递出来的匿名类型

制作者:剑锋冷月 单位:无忧统计网,www.51stat.net
 

  今天看了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};
}



相关教程