gpt4 book ai didi

c# - 如何在编译时获得通用参数类型名称?

转载 作者:太空狗 更新时间:2023-10-29 19:46:59 28 4
gpt4 key购买 nike

我正在尝试实现一个通用类。它应该有一个属性,该属性带有一个编译时常量,我想将其设置为参数类型的名称。像这样:

namespace Example
{
public class MyGeneric<T>
{
[SomeAttribute(CompileTimeConstant)]
public int MyProperty { get; set; }

private const string CompileTimeConstant = typeof(T).Name; // error CS0133:
// The expression being assigned to `Example.MyGeneric<T>.CompileTimeConstant' must be constant
}
}

但是因为 typeof(T).Name 是在运行时计算的,所以它不起作用。可能吗?

最佳答案

我不认为这是使用属性的正确方法。属性用于向类添加特定特征。它们是您在编译时添加到类中以供在运行时查询和使用的标记。您正在尝试在运行时添加一个属性并如何使用它?为什么要使用属性来保存运行时可用的信息?

可以在运行时轻松查询类型的名称。我认为您应该提供更多关于您究竟想要实现什么的信息,否则我认为使用 TypeName 属性可能就足够了。

关于c# - 如何在编译时获得通用参数类型名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24003253/

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