首页 > 解决方案 > c#如何在get属性中使用模板?

问题描述

我在 c# 的 get 属性中使用模板时遇到了一些问题。下面的类没有问题:

public class test
{
    public T GetDefault<T>()
    {
        return default(T);
    }
}

但我想使用 get 属性然后出现错误

意外使用通用名称

代码如下:

public class test
{
    public T Default<T> => default<T>;
}

标签: c#templatespropertiesget

解决方案


到目前为止,C# 中还没有通用属性。您可以在此处此处找到详细信息:

我们必须为通用属性的后备存储保留空间 [...]。但我们不知道要预留多少。即使编译器已经阅读并理解了泛型的所有可能用法。

MSDN在这里声明:

属性是字段的自然扩展。两者都是具有关联类型的命名成员。

它们必须在编译时具有关联的类型。


推荐阅读