匿名类型anonymous type
2013-11-02 17:36
78 查看
匿名类型:
见以下代码:
![](http://images.cnitblog.com/blog/577612/201311/02172800-092fc5320b6640c295921c84fa555ac9.jpg)
注意:这里显示的属性定义为只读属性,这表示,如果要在数据存储对象中修改属性的值,就不能使用匿名类型了。
1.匿名类型上的Equals()的实现比较对象的状态,如果一个对象的每个属性都与另一个对象的对应属性值相同,结果就是true;
2.==运算符比较对象的引用;(数组中的每一项都引用匿名类型的不同实例)
var curry = new { MainIngredient = "lamb", Style = "red", Spiciness = 1 };
见以下代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace VarDemo { public class Curry { public string MainIngredient { get; set; } public string Style { get; set; } public int Spiciness { get; set; } } class Program { static void Main(string[] args) { Curry cur1 = new Curry { MainIngredient = "Panic", Style = "Red", Spiciness = 8 }; var curry = new { MainIngredient = "lamb", Style = "red", Spiciness = 1 }; Console.WriteLine(curry.MainIngredient); Console.WriteLine(curry.Spiciness); Console.WriteLine(curry.Style); var curries = new[] { new { MainIngredient = "Panic", Style = "Red", Spiciness = 8 }, new { MainIngredient = "Panic", Style = "Red", Spiciness = 8 }, new { MainIngredient = "Soyou", Style = "yell", Spiciness = 2 }, }; Console.WriteLine(curries[0].ToString()); Console.WriteLine(curries[0].GetHashCode()); Console.WriteLine(curries[1].GetHashCode()); Console.WriteLine(curries[2].GetHashCode()); Console.WriteLine(curries[0].Equals(curries[1])); Console.WriteLine(curries[0].Equals(curries[2])); Console.WriteLine(curries[0] == curries[1]); Console.WriteLine(curries[0] == curries[2]); Console.ReadLine(); } } }
![](http://images.cnitblog.com/blog/577612/201311/02172800-092fc5320b6640c295921c84fa555ac9.jpg)
注意:这里显示的属性定义为只读属性,这表示,如果要在数据存储对象中修改属性的值,就不能使用匿名类型了。
1.匿名类型上的Equals()的实现比较对象的状态,如果一个对象的每个属性都与另一个对象的对应属性值相同,结果就是true;
2.==运算符比较对象的引用;(数组中的每一项都引用匿名类型的不同实例)
相关文章推荐
- C#匿名类型(Anonymous Type)学习日记
- [.NET 3.x新特性五]匿名类型
- [读书笔记]C#学习笔记四: C#2.0泛型 可控类型 匿名方法和迭代器
- C#中的匿名方法与可空类型
- 为什么匿名内部类参数必须为final类型
- 关于委托:异常{ 无法将 匿名方法 转换为类型“System.Delegate”,因为它不是委托类型 }
- .NET 数据类型之匿名类型(var)
- JAVA匿名内部类不能访问外部类方法中的局部变量,除非变量被声明为final类型
- 关于Silverlight对匿名类型数据绑定的问题及其解决方法
- C# 匿名类型
- 为什么匿名内部类参数必须为final类型
- 关于匿名类型的使用
- 从异常{ 无法将 匿名方法 转换为类型“System.Delegate”,因为它不是委托类型 }说开去
- 《C# in Depth:深入理解C#》读书笔记 - 隐式类型、对象初始化程序和匿名类型
- C#3.0 中 隐式类型变量、匿名类型
- 关于委托:异常{ 无法将 匿名方法 转换为类型“System.Delegate”,因为它不是委托类型 }
- 关于委托:异常{ 无法将 匿名方法 转换为类型“System.Delegate”,因为它不是委托类型 }
- ASP.NET MVC3 匿名类型视图模型无法识别的解决方案
- DataGrid 的 ItemDataBound 中如何获取匿名类型数据源的Item
- 如何把匿名类型.GetType()返回的对象传进泛型里面[转]