通用参数将由getter决定

时间:2011-05-21 23:51:49

标签: c# .net generics

有没有办法做这样的事情:

public interface ISomething {
        Type e { get; }
        Expression<Func<e, long>> GetExpression(); //COMPILE ERROR
}

我收到了编译错误:e是属性,但使用类似的类型。

我希望Generic参数由getter决定 - 是否可能?

3 个答案:

答案 0 :(得分:4)

如果您想保持ISomething非通用,那么您只能GetExpression通用:

public interface ISomething 
{
     Expression<Func<T, long>> GetExpression<T>();
}

答案 1 :(得分:2)

这应该可以解决问题,但我不太了解e属性的目的。

public interface ISomething<T> 
{
    T SomeProperty { get; }
    Expression<Func<T, long>> GetExpression();
}

答案 2 :(得分:1)

 public interface ISomething<T> {
 {
         Expression<Func<T, long>> GetExpression();
 }