我試圖創建一個實例對接口,但它失敗了一個轉換轉換錯誤。爲什麼接口需要強制轉換?
以下簡單方案正常工作。
class Employee:IEmployee
{
public Employee (int Id) {}
public string Name {get;set;}
}
interface IEmployee
{
string Name {get;set;}
}
//執行
IEmployee employee = new Employee(1)
我在相同的情況下是行不通的大課。他們主要是更大的班級。我得到下面的編譯時錯誤:
Cannot implicitly convert type 'IDirector' to 'Director'. An explicit conversion exists (are you missing a cast?)
代替上述類型的語法的,我必須使用此:
IDirector myDirector = (IDirector)new Director(directorId);
主任確實實現IDirector。這些是單個對象,而不是單個對象列表。
它也不會,如果我在通過類的構造函數傳遞一個接口和工作嘗試將其分配到實現該接口的類的類型:
private ClassB classb;
Public ClassA (IClassB classbInterfaceInstance)
{
classb = classbInterfaceInstance;
}
任何想法,爲什麼需要在一些投案件但不是其他人?
'Director'是直接實現'IDirector'還是簡單地提供一個轉換操作符? –
它實現了接口。 – 4thSpace
這是因爲你忘了在'Director'裏面實現'IDirector' :-) – dasblinkenlight