gpt4 book ai didi

C# - 如何正确使用接口(interface)的实现

转载 作者:太空狗 更新时间:2023-10-30 00:05:22 25 4
gpt4 key购买 nike

public interface IMyInterface
{
List<string> MyList(string s)
}

public class MyClass : IMyInterface
{
public List<string> MyList(string s)
}

有什么区别:

[Method]
MyClass inst = new MyClass();
...

或者:

[Method]
var inst = new MyClass() as IMyInterface;
...

或者:

[Method]
IMyInterface inst = new MyClass();
...

使用 IMyInterface 实现的正确方法是什么?

最佳答案

第二个是可怕的。它真的等同于

IMyInterface inst = new MyClass();

但它甚至不检查 MyClass 是否实现了该接口(interface)。这只是一种使用 var 但在别处显式指定类型的方法。恶心。

如果您仅依赖于此,通常使用接口(interface)类型(根据上述或第三个选项)声明变量会更清晰 - 它让用户清楚地知道您不需要声明任何额外的成员由类。参见 "What does it mean to program to an interface?"获取更多信息。

请注意,这些都与实现接口(interface)无关。 MyClass实现接口(interface)的类。这仅与使用接口(interface)的实现有关。

关于C# - 如何正确使用接口(interface)的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12804701/

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