草庐IT

interface-design

全部标签

c# - 为什么要显式实现接口(interface)?

那么,究竟什么是显式实现接口(interface)的好用例?是否只是为了让使用该类的人不必查看智能感知中的所有这些方法/属性? 最佳答案 如果你实现了两个接口(interface),都具有相同的方法和不同的实现,那么你必须显式实现。publicinterfaceIDoItFast{voidGo();}publicinterfaceIDoItSlow{voidGo();}publicclassJustDoIt:IDoItFast,IDoItSlow{voidIDoItFast.Go(){}voidIDoItSlow.Go(){}}

c# - 使用接口(interface)时如何实现私有(private) setter ?

我已经创建了一个具有一些属性的接口(interface)。如果接口(interface)不存在,则类对象的所有属性都将设置为{get;privateset;}但是,这在使用接口(interface)时是不允许的,那么这是否可以实现,如果可以的话如何实现? 最佳答案 在接口(interface)中你只能为你的属性定义getterinterfaceIFoo{stringName{get;}}但是,在您的类(class)中,您可以将其扩展为拥有一个privatesetter-classFoo:IFoo{publicstringName{g

c# - 使用接口(interface)时如何实现私有(private) setter ?

我已经创建了一个具有一些属性的接口(interface)。如果接口(interface)不存在,则类对象的所有属性都将设置为{get;privateset;}但是,这在使用接口(interface)时是不允许的,那么这是否可以实现,如果可以的话如何实现? 最佳答案 在接口(interface)中你只能为你的属性定义getterinterfaceIFoo{stringName{get;}}但是,在您的类(class)中,您可以将其扩展为拥有一个privatesetter-classFoo:IFoo{publicstringName{g

Altium Designer软件导出原理图和PCB图的PDF形式

AD软件导出原理图和PCB图的PDF文件AltiumDesigner提供了统一的应用方案,是Protel(经典版本为Protel99se)的升级版本,其综合电子产品一体化开发所需的所有必须技术和功能。AltiumDesigner在单一设计环境中集成板级和FPGA系统设计、基于FPGA和分立处理器的嵌入式软件开发以及PCB版图设计、编辑和制造。并集成了现代设计数据管理功能,使得AltiumDesigner成为电子产品开发的完整解决方案——一个既满足当前,也满足未来开发需求的解决方案。现在立创EDA也挺好用的,而且无需画封装,贼方便╰(°▽°)╯首先,任意版本AltiumDesigner软件点击文

c# - 如何将接口(interface)用作 C# 泛型类型约束?

有没有办法得到下面的函数声明?publicboolFoo()whereT:interface;即。其中T是接口(interface)类型(类似于whereT:class和struct)。目前我已经解决了:publicboolFoo()whereT:IBase;其中IBase被定义为一个空接口(interface),它被我所有的自定义接口(interface)继承……不理想,但它应该可以工作……为什么不能定义泛型类型必须是一个接口(interface)?就其值(value)而言,我想要这个是因为Foo在需要接口(interface)类型的地方进行反射...我可以将其作为普通参数传入并在函

c# - 如何将接口(interface)用作 C# 泛型类型约束?

有没有办法得到下面的函数声明?publicboolFoo()whereT:interface;即。其中T是接口(interface)类型(类似于whereT:class和struct)。目前我已经解决了:publicboolFoo()whereT:IBase;其中IBase被定义为一个空接口(interface),它被我所有的自定义接口(interface)继承……不理想,但它应该可以工作……为什么不能定义泛型类型必须是一个接口(interface)?就其值(value)而言,我想要这个是因为Foo在需要接口(interface)类型的地方进行反射...我可以将其作为普通参数传入并在函

c# - 有没有办法导航到接口(interface)背后方法的实际实现?

在VisualStudio中,当您右键单击一个方法调用时,您将转到该方法在类中的实现,除非您通过接口(interface)访问该方法:在这种情况下,您将转到接口(interface)方法而不是实际方法实现。是否有方法/提示(快捷键或其他)来访问此实际实现?否则你只能添加一些评论来记住你在哪里实现了它,这真的没有效率而且容易出错!更新:有趣的答案,但我不是很满意,因为所有这些都很麻烦。我举一个具体的例子:IInterfaceiInterface=someObject;iInterface.someMethod();实际上,如果VisualStudio稍微聪明一点,只看方法调用上方的一行,

c# - 有没有办法导航到接口(interface)背后方法的实际实现?

在VisualStudio中,当您右键单击一个方法调用时,您将转到该方法在类中的实现,除非您通过接口(interface)访问该方法:在这种情况下,您将转到接口(interface)方法而不是实际方法实现。是否有方法/提示(快捷键或其他)来访问此实际实现?否则你只能添加一些评论来记住你在哪里实现了它,这真的没有效率而且容易出错!更新:有趣的答案,但我不是很满意,因为所有这些都很麻烦。我举一个具体的例子:IInterfaceiInterface=someObject;iInterface.someMethod();实际上,如果VisualStudio稍微聪明一点,只看方法调用上方的一行,

c# - 为什么 C# 接口(interface)不能包含字段?

例如,假设我想要一个ICar接口(interface)并且所有实现都将包含字段Year。这是否意味着每个实现都必须单独声明Year?在界面中简单地定义它不是更好吗? 最佳答案 虽然许多其他答案在语义层面上是正确的,但我发现从实现细节层面处理这类问题也很有趣。接口(interface)可以被认为是槽的集合,其中包含方法。当一个类实现一个接口(interface)时,该类需要告诉运行时如何填充所有需要的槽。当你说interfaceIFoo{voidM();}classFoo:IFoo{publicvoidM(){...}}类说“当你创建

c# - 为什么 C# 接口(interface)不能包含字段?

例如,假设我想要一个ICar接口(interface)并且所有实现都将包含字段Year。这是否意味着每个实现都必须单独声明Year?在界面中简单地定义它不是更好吗? 最佳答案 虽然许多其他答案在语义层面上是正确的,但我发现从实现细节层面处理这类问题也很有趣。接口(interface)可以被认为是槽的集合,其中包含方法。当一个类实现一个接口(interface)时,该类需要告诉运行时如何填充所有需要的槽。当你说interfaceIFoo{voidM();}classFoo:IFoo{publicvoidM(){...}}类说“当你创建