gpt4 book ai didi

c# - 什么是 EIMI 的好用例?

转载 作者:太空宇宙 更新时间:2023-11-03 17:16:45 25 4
gpt4 key购买 nike

EIMI 是一个显式接口(interface)成员实现。所以不是:

public int SomeValue{get;}

你有

int SomeInterface.SomeValue {get;}

我目前正在考虑使用一个,因为我正在使用一个内部接口(interface)(以分离但限制)并且我不想让实现对象上的方法出现在它的公共(public) API 中。

这是一个很好的用例吗?

最佳答案

一个很好的例子是 .Net 泛型集合类。

例如,List<T>隐式实现“IList”和IList (非通用接口(interface))显式。这意味着当您直接使用该类时,您只会看到专门的方法,而看不到与 Object 一起使用的方法。

假设您实例化一个 List<Person> .如果 IList 是隐式实现的,您将有两个可在类 Add(Person item) 和 Add(Object item) 上直接访问的添加方法,这将破坏泛型提供的类型安全性。调用 list.Add("Foo") 将编译得很好,因为 Add(Object) 重载将被自动选择,并且泛型提供的类型安全性消失了。

关于c# - 什么是 EIMI 的好用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/472782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com