C# 接口如何替换类?
我创建了一个名为GetStudentMarks的方法。这个方法的返回类型是泛型列表。即使我用泛型IList替换了列表,代码也运行良好。当接口仅包含声明时,接口如何替换类?接口不能替换类。它只是一个类的蓝图,该类有一些实现,这些实现与接口设置的准则相对应。因此,您通常会有一个接口和一个或多个类,这些类对该接口有一些实现,如下所示:C# 接口如何替换类?,c#,list,generics,interface,ilist,C#,List,Generics,Interface,Ilist,我创建了一个名为GetStudentMarks的方法。这个方法的返回类型是泛型列表。即使我用泛型IList替换了列表,代码也运行良好。当接口仅包含声明时,接口如何替换类?接口不能替换类。它只是一个类的蓝图,该类有一些实现,这些实现与接口设置的准则相对应。因此,您通常会有一个接口和一个或多个类,这些类对该接口有一些实现,如下所示: public interface IMyInterface{ IList<string> SomeList { get; } } public clas
public interface IMyInterface{
IList<string> SomeList { get; }
}
public class MyClass : IMyInterface {
public IList<string> SomeList {
get {
return new List<string>(){ "a", "b" , "c" };
}
}
}
返回类型是接口还是实体类并不重要。由于在方法内部返回的是完整类型,因此在返回实际数据之前,该类型被强制转换为声明的返回类型,因此一切都按预期进行
public IList<string> MyStrings()
{
return new List<string>(); // Cast happens here just before return (List -> IList)
}
以后如果需要,可以将返回类型IList强制转换回solid类列表并以这种方式使用。接口无法替换该类。接口可以创建一个抽象层,将实际的对象实现隐藏在接口之外,这就是为什么它被称为接口。
查看解释。+1,尽管合同条款更为明确。接口承诺一个对象可以执行某种方法。只是简单地说,它隐藏或抽象了它定义的实现。