这些代码示例并不意味着可以正常工作。它们旨在说明我尝试做我认为可能的方法。
// Error: The name First does not exist...
var Contact = new
{
First = "",
Last = "",
FullName = First + " " + Last
};
// Error: Cannot assign lambda expression to anonymous type property
var Contact = new
{
First = "",
Last = "",
FullName = () => { }
};
Visual Studio 2013:
匿名类型包含一个或多个公共只读属性。没有其他种类的类成员(例如方法或事件)有效。用于初始化属性的表达式不能为null,匿名函数或指针类型。
实际上可以,您可以:MSDN文档:
var fName = "First Name";
var lName = "Last Name";
var t = new
{
FirstName = "First Name",
LastName = "Last Name",
FullName = new Func<string>(() => { return fName + lName; })
};
根据您对TypeSafety的渴望程度,还可以执行以下操作:
dynamic v = new ExpandoObject();
v.FirstName = "FName";
v.LastName = "LName";
v.FullName = new Func<string>(() => { return v.FirstName + " " + v.LastName; });
坦白地说,我可能会使用这些属性和方法在方法的父类中创建一个嵌套类型。两种方法都可以使用,并且内部类仅在其中使用时也不会弄乱项目的其余部分。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句