我试图创建一个实例对接口,但它失败了一个转换转换错误。为什么接口需要强制转换?
以下简单方案正常工作。
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