C# 泛型参数将由getter决定
有没有办法做到这一点:C# 泛型参数将由getter决定,c#,.net,generics,C#,.net,Generics,有没有办法做到这一点: public interface ISomething { Type e { get; } Expression<Func<e, long>> GetExpression(); //COMPILE ERROR } 我得到了编译错误:e是属性,但像类型一样使用 我希望泛型参数将由getter决定-可能吗?这应该可以做到,尽管我不太了解e属性的用途 public interface ISomething<T>
public interface ISomething {
Type e { get; }
Expression<Func<e, long>> GetExpression(); //COMPILE ERROR
}
我得到了编译错误:e是属性,但像类型一样使用
我希望泛型参数将由getter决定-可能吗?这应该可以做到,尽管我不太了解e属性的用途
public interface ISomething<T>
{
T SomeProperty { get; }
Expression<Func<T, long>> GetExpression();
}
如果要使ISomething保持非泛型,则只能将GetExpression设置为泛型:
你所说的泛型参数将由getter决定是什么意思?@BoltClock:在上面的示例中,Expression GetExpression;标记为编译错误。您必须使用反射。是否有方法防止公共接口中的泛型问题?e属性应该定义泛型类型。@Naor:不,没有。泛型类型是在编译时确定的,而不是在运行时确定的。有什么方法可以防止泛型在公共接口中出现?
public interface ISomething<T> {
{
Expression<Func<T, long>> GetExpression();
}
public interface ISomething
{
Expression<Func<T, long>> GetExpression<T>();
}