您的位置:首页 > 其它

匿名类型anonymous type

2013-11-02 17:36 78 查看
匿名类型:

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();
}
}
}




注意:这里显示的属性定义为只读属性,这表示,如果要在数据存储对象中修改属性的值,就不能使用匿名类型了。

1.匿名类型上的Equals()的实现比较对象的状态,如果一个对象的每个属性都与另一个对象的对应属性值相同,结果就是true;

2.==运算符比较对象的引用;(数组中的每一项都引用匿名类型的不同实例)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: