直接通过另一个类公开类类型

时间:2012-08-01 13:46:41

标签: c#

我有一个名为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; }
}

2 个答案:

答案 0 :(得分:2)

您可以使用implicit operator

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;

答案 1 :(得分:1)

使用操作员......

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

然后

MyClass x=new Config<MyClass>();