0

我有一个名为 Config 的类,其声明 public class Config<T> where T : class, new()

它包含一些方法来保存类型的配置T以及名为的属性中的实际配置Configuration

是否可以直接在我的 Config 类中公开类型的T配置而无需通过Configuration属性。

到目前为止,我有一些丑陋的工作

public T this[int index]
{
    get { return _configuration; }
}

如果不是,那么我想知道是否可以通过继承来完成T,但我不清楚如何做到这一点的语法。

编辑:
我想你可以做类似的事情

public T this
{
    get { return _configuration; }
}
4

2 回答 2

2

您可以使用隐式运算符

class Config<T> where T: class, new()
{
  private T _configuration;

  public static implicit operator T(Config cfg)
  {
    return cfg._configuration;
  }
}

像这样使用它:

var config = new Config<SomeClass>();
SomeClass realConfig = config;
于 2012-08-01T14:44:23.240 回答
1

使用运算符....

public static implicit operator T(Config<T> source) {
   return source.Configuration;
}

然后

MyClass x=new Config<MyClass>();
于 2012-08-01T14:46:18.977 回答