0
我收到錯誤消息「不能隱式地從類型‘SpecificT’的方法ToViewDocument鍵入‘The.Right.Namespace.SpecificT’轉換。C#不能隱式類型從「T」轉換爲類型「T」
。看來,在這個方法中,我重新定義類型SpecificT
這是方法,讓我的煩惱:
public override SpecifiedT
ToViewDocument<SpecifiedT>(XmlEntity entity, DocKey docKey)
{
switch (docKey.IdArchive)
{
case IdArchive.A:
return ToAViewData((XmlDocA)entity, docKey) //error at this line;
default:
return ToBViewData((XmlDocB)entity, docKey) //error at this line;
}
}
private SpecifiedT ToAViewData(XmlDocMassima entity, DocKey documentKey)
{
SpecifiedT result = new SpecifiedT();
//map result on entity result
//...
return result;
}
該功能覆蓋了基類的方法:
public abstract T ToViewDocument<T>(XmlEntity entity, DocKey documentKey) where T : ViewDocumentDto, new();
而且SpecifiedT延伸牛逼,所以我不明白爲什麼編譯器不能識別SpecifiedT爲T.
包含的類定義是什麼樣的? –
你想'SpecifiedT'是一個實際的類?或者你打算將它作爲一個類型參數嗎? –
在'ToViewDocument'' SpecifiedT'是一個類型參數,但是在'ToAViewData'中它似乎是一個具體的類?如果是這樣,這將不會起作用,因爲它是在調用'ToViewDocument'時選擇'SpecifiedT'的客戶端,例如'ToViewDocument(entity,docKey)'。 –
Lee