我已經有一個通用型的「G」編譯器無法轉換約束泛型類型
在我的類模型I類有
public class DetailElement : ElementDefinition
比方說,我有這樣的
的方法 public void DoSomething<G>(G generic)
where G : ElementDefinition
{
if (generic is DetailElement)
{
((DetailElement)generic).DescEN = "Hello people"; //line 1
//////
ElementDefinition element = generic;
((DetailElement)element).DescEN = "Hello again"; //line 3
//////
(generic as DetailElement).DescEN = "Howdy"; //line 5
}
else
{
//do other stuff
}
}
編譯器報告一個錯誤在第1行:
Cannot convert type 'G' to 'DetailElement'
但第3行工作正常。 我可以通過做寫一行代碼解決此問題5.
什麼,我想知道的是爲什麼編譯器報告在第1行,而不是一個在3號線的錯誤,因爲,據據我所知,它們是相同的。
編輯:恐怕我可能會丟失框架邏輯
EDIT2的一些重要的一塊:雖然編譯器錯誤的解決方案是很重要的,我的問題是關於爲什麼編譯器第1行,並報告錯誤不在第3行。
爲了簡單起見,我沒有把這裏的所有代碼。我會編輯它是正確的 – 2008-10-08 17:46:17