在C#中,我喜欢实现属性get / set方法,该方法的 name 与返回/应用的 type 的名称相同。这很适合我,因为这意味着我不必为该方法设计自己的新名称。例如:
class MyClass
{
public XmlDocument XmlDocument { get; set: }
...
我的问题是-当MyClass
是泛型类时,我将如何表达以上内容?我已经尝试过了:
class MyClass<T>
{
public T T { get; set; }
...
但是C#编译器会引发错误:
错误CS0102类型“ MyClass”已经包含以下内容的定义: 'T'
我也尝试使用nameof(T)
和@T
指定方法的名称,但是它们引发了不同的编译器错误。
我想做的甚至是可能的吗?如果是,该属性访问器的名称应使用什么语法?
答案 0 :(得分:0)
否,无法将泛型方法/属性的名称基于指定为参数的类型。
您可以在运行时使用模板(如t4)或代码生成此类。
注意: