c#匿名种 anonymous
c#匿名类 anonymous? ? 感谢http://blog.csdn.net/jjx0224/article/details/5887589?? ? 感谢http://hi.ba
c#匿名类 anonymous
? ? 感谢http://blog.csdn.net/jjx0224/article/details/5887589?
? ? 感谢http://hi.baidu.com/guodong828/blog/item/cc53404ef40af002b3de0500.html
?
? c# 匿名类 上代码:
?
- using?System;??
- using?System.Collections.Generic;??
- using?System.Linq;??
- using?System.Text;??
- ??
- namespace?ConsoleApplication1??
- {??
- ????///?<summary>??
- ????///?作者:it小金??
- ????///?作用:匿名类型的使用??
- ????///?说明:var?关键字,用于表示隐式类型化的变量。var?与new?关键字一起使用时,可以创建匿名类型。??
- ????///?</summary>??
- ????class?Program??
- ????{??
- ????????static?void?Main(string[]?args)??
- ????????{??
- ????????????var?a?=?new?{?name?=?"it小金",?age?=?24?};//匿名类型只是一个继承了Object?的、没有名称的类。该类的定义从初始化器中推断,类似于隐式类型化的变量。??
- ????????????//a.name="hh";这是错误的,不能对属性进行赋值,因为name是a中的一个属性,且它为只读的??
- ????????????string?b?=?a.name.ToString();??
- ????????????int?c?=?a.age;??
- ????????????Console.WriteLine(b);??
- ????????????Console.WriteLine(c);??
- ????????????Console.Read();??
- ????????}??
- ????}??
- } ?
? ?用到匿名类,难免碰到匿名类转换问题,上代码:
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, Name = 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};}