如何动态声明一个类? C#

发布于 2024-09-30 15:08:08 字数 59 浏览 2 评论 0原文

是否有可能动态声明一个类? 是否有可能在 C# 中使用匿名类创建通用列表? 任何代码片段都会有帮助。谢谢

is there any possibility to declare a class dynamically?
is there any possibility to create generic list with anonymous class in C#?
any code snippets will help. thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

大姐,你呐 2024-10-07 15:08:08

动态声明类需要 CodeDom

是否有可能在 C# 中使用匿名类创建通用列表?

是的,但一般来说,不建议在直接上下文之外使用它。例如,这将创建一个匿名类型的泛型列表:

var range = Enumerable.Range(0, 100);

var genericList = range.Select(value => new { Value = value }).ToList();

在上面的代码中,genericList 是一个包含匿名类型的 List

Declaring a class dynamically requires CodeDom.

is there any possibility to create generic list with anonymous class in C#?

Yes, but it's, in general, not recommended for use outside of the immediate context. For example, this creates a generic list of an anonymous type:

var range = Enumerable.Range(0, 100);

var genericList = range.Select(value => new { Value = value }).ToList();

In the above code, genericList is a List<T> containing an anonymous type.

勿忘心安 2024-10-07 15:08:08

正如 SLAks 在评论中提到的,这是可能的。但这并非无关紧要。我不确定您要做什么,但您可以轻松地将匿名类型添加到对象的通用列表中。

List<object> list = new List<object>();
for(int i = 0; i < 10; i++){
   list.Add(new { SomeProperty = i, OtherProperty = "foobar" });
}

As SLaks mentioned in the comments, it is possible. But it is non-trivial. I'm not sure what you are trying to do, but you can easily add anonymous types to a generic list of objects.

List<object> list = new List<object>();
for(int i = 0; i < 10; i++){
   list.Add(new { SomeProperty = i, OtherProperty = "foobar" });
}
浮生未歇 2024-10-07 15:08:08

Microsoft 在 4.0 版本中使 C# 变得动态化。您可以使用新的“dynamic”关键字。以下链接提供了一些有关如何使用新动态类型的好示例。

http://msdn.microsoft.com/en-us/library/dd264741.aspx

Microsoft made C# dynamic in version 4.0. You can use the new 'dynamic' keyword. The following link has some good examples of how to use the new dynamic type.

http://msdn.microsoft.com/en-us/library/dd264741.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文