泛型方法調用 - 沒有從「IValue」到「IValueFox」的隱式引用轉換。這段代碼的處理是什麼?泛型方法調用轉換錯誤的原因?
public interface IValueFox : IValue
{
...
}
private Mock<I> GenerateMockValue<I, T>(State state, T type)
where I : class, IValueFox
{
...
}
private void TestFoxValues()
{
var newFox = this.GenerateMockValue<IValue, object>(State.Red, null);
...
}
並獲得以下錯誤,當我調用方法「GenerateMockValue」「TestFoxValues」:
「IValue」不能被用作類型參數「I」在通用型或 方法' GenerateMockValue」。從'IValue'轉換爲'IValueFox'沒有暗示參考 。
但我不明白的是,爲什麼需要任何轉換,因爲IValueFox實現了IValue。任何人都可以爲我澄清這個問題嗎?
在此先感謝!
汽車和車輪將是一個構圖的例子,而不是繼承,是迂腐。 – Matthew 2013-04-09 21:04:03
你說得對。我將這個例子修改爲「輪式機動車」:-) – 2013-04-09 21:12:07