C# C语言的实现差异#
我是C#的学习者。你能解释一下分配a和B的区别吗 集合到接口 我看到一些例子,初始化C# C语言的实现差异#,c#,interface,C#,Interface,我是C#的学习者。你能解释一下分配a和B的区别吗 集合到接口 我看到一些例子,初始化 List<int> few = new List<int>() { 12, 123, 211, 200 }; List now=newlist(){12,123,211,200}; 但有些人将集合分配给接口 IList<int> someList=new List<int>(){12,23,56,78}; IList someList=new List()
List<int> few = new List<int>() { 12, 123, 211, 200 };
List now=newlist(){12,123,211,200};
但有些人将集合分配给接口
IList<int> someList=new List<int>(){12,23,56,78};
IList someList=new List(){12,23,56,78};
我们什么时候需要后面的方法?。如果您愿意提供一个示例,那么示例的利弊将很好地教育我。使用IList时,您将只能访问IList中的方法,而不能访问列表中的方法(而不是IList中的方法).通常,您应该选择在公共界面中公开
IList
而不是List
,而如果列表仅在方法中使用,则差别不大:
public IList<int> GetSomeInts()
{
List<int> result = new List<int>() { 12, 123, 211, 200 };
return result;
}
public IList GetSomeInts()
{
列表结果=新列表(){12,123,211,200};
返回结果;
}
通过这种方式,可以将公共接口与方法内部实际使用的具体类型分离。例如,您可以选择将的内部使用替换为使用,而不影响公共界面或它的用户,因为这两个实现都是一个具体的实现。如果你是唯一的消费者,这是最合适的。当多个使用者访问时,IList提供了灵活性。因此,如果实现发生变化,其他消费者不会改变某件事 可能的二聚硅酸钠也: