gpt4 book ai didi

c# - 是否可以更改匿名类型?

转载 作者:太空宇宙 更新时间:2023-11-03 18:40:22 26 4
gpt4 key购买 nike

这可能吗?假设您有以下内容:

var x = new { name = "name", age = 22 };

然后可以向该对象添加或附加属性吗?所以在稍后阶段我可以添加高度使其成为 { name = "name", age = 22, height = 1.9 };

寻找一种重铸的方式或在新属性中添加一些东西并不一定要优雅。

最佳答案

不,这绝对不可能。匿名类型是不可变的,并且由它们的属性的名称和类型以及它们出现的顺序来精确定义。添加新属性是另一种类型。

在匿名类型中你能做的最好的事情就是创建一个不同匿名类型的实例:

var y = new { name = x.name, age = x.age, height = 1.9 };

(注意 name =age = 不是必需的;编译器会为您推断它们。)

但实际上听起来你想要 dynamic ,或像 Dictionary<string, object> 这样的属性(property)袋如果您未使用 .NET 4.0。

或者也许,只是也许,像这样的具体类型:

public class Person {
public string Name { get; set; }
public int Age { get; set; }
public decimal? Height { get; set; }
}

请注意 height可以为空。

关于c# - 是否可以更改匿名类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9619291/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com