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