已經踩上了我自己的腳趾,我認爲這是一段非常簡單的代碼。代碼比文字說得更好,所以就是這樣。C#接口和通用組合。想要返回<T>而不是其基本接口
public interface IResponse
{
IResult Result { get; set; }
}
public class Response<T> : IResponse
where T : IResult
{
public T Result { get; set; }
// COMPILER ERROR: Property 'Result' cannot be implemented property from interface 'IResponse'. Type should be 'IResult'.
}
編譯器不允許我這樣做,因爲IResponse要求結果爲IResult,但是我想利用仿製藥的優勢,在實現類和強類型的結果T.這是不可能的,還是我錯過了一些微不足道的東西?
問題與使得界面也一般是我用它在另一個類,我不希望它迫使我指定T. – Arkiliknam 2011-12-30 10:44:31
是的,我想到這一點。這就是爲什麼我剛添加第二個和第三個選項。 – 2011-12-30 10:45:28
剛剛看到你的更新。看起來不錯,什麼東西埋在我的頭上。好東西! :) – Arkiliknam 2011-12-30 10:46:15