我試圖完成這樣的事情。隱式轉換泛型類
public class GreatClass<A, B>
where A : IA
where B : IB, new()
{
public void Function()
{
var list = new List<A>();
var obj = new B { Items = list.ToArray() };
}
}
public interface IA
{
}
public interface IB
{
IA[] Items { get; set; }
}
namespace Namespace1
{
public class A : IA {}
public class B : IB {}
}
namespace Namespace2
{
public class A : IA {}
public class B : IB {}
}
所以我有兩個具有類似類的名稱空間實現相同的接口。我有兩個我想在兩個名稱空間的類之間共享的邏輯,因此我使用實現已實現接口的泛型類。
但是,我在「list.ToArray()」上得到一個編譯錯誤,指出它不能隱式輸入'IA []'到'IA []'。有什麼我可以做的,這使得編譯器明白如何處理這個問題?
使用.Cast()像你一些人一直建議給我一個運行時錯誤,而不是。我無法將IA []類型轉換爲Namespace1.A [](或Namespace2.A [])。
你可以用'.Cast()'雖然因爲數組是空的,你可以只創建一個空的'IA []'直接。 –
Lee