草庐IT

default-interface-member

全部标签

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(){...}}类说“当你创建

c# - 接口(interface)——有什么意义?

接口(interface)的原因真的让我难以理解。据我了解,这是一种解决C#中不存在的不存在的多重继承的方法(或者有人告诉我)。我所看到的是,您预定义了一些成员和函数,然后必须在类中再次重新定义它们。从而使接口(interface)冗余。感觉就像句法……好吧,对我来说是垃圾(请不要冒犯我。垃圾就是无用的东西)。在下面给出的示例中,取自堆栈溢出时的不同C#接口(interface)线程,我将只创建一个名为Pizza的基类而不是接口(interface)。简单示例(取自不同的堆栈溢出贡献)publicinterfaceIPizza{publicvoidOrder();}publicclas

c# - 接口(interface)——有什么意义?

接口(interface)的原因真的让我难以理解。据我了解,这是一种解决C#中不存在的不存在的多重继承的方法(或者有人告诉我)。我所看到的是,您预定义了一些成员和函数,然后必须在类中再次重新定义它们。从而使接口(interface)冗余。感觉就像句法……好吧,对我来说是垃圾(请不要冒犯我。垃圾就是无用的东西)。在下面给出的示例中,取自堆栈溢出时的不同C#接口(interface)线程,我将只创建一个名为Pizza的基类而不是接口(interface)。简单示例(取自不同的堆栈溢出贡献)publicinterfaceIPizza{publicvoidOrder();}publicclas

c# - 匿名类可以实现接口(interface)吗?

是否可以让匿名类型实现接口(interface)?我有一段代码想要使用,但不知道如何操作。我有几个答案要么说不,要么创建一个实现接口(interface)的类构造它的新实例。这不是很理想,但我想知道是否有一种机制可以在接口(interface)之上创建一个瘦动态类,从而使这变得简单。publicinterfaceDummyInterface{stringA{get;}stringB{get;}}publicclassDummySource{publicstringA{get;set;}publicstringC{get;set;}publicstringD{get;set;}}publ

c# - 匿名类可以实现接口(interface)吗?

是否可以让匿名类型实现接口(interface)?我有一段代码想要使用,但不知道如何操作。我有几个答案要么说不,要么创建一个实现接口(interface)的类构造它的新实例。这不是很理想,但我想知道是否有一种机制可以在接口(interface)之上创建一个瘦动态类,从而使这变得简单。publicinterfaceDummyInterface{stringA{get;}stringB{get;}}publicclassDummySource{publicstringA{get;set;}publicstringC{get;set;}publicstringD{get;set;}}publ

c# - 为什么 C# 不允许静态方法实现接口(interface)?

为什么C#是这样设计的?据我了解,接口(interface)仅描述行为,并用于描述实现特定行为的接口(interface)的类的契约(Contract)义务。如果类希望在共享方法中实现该行为,为什么不呢?这是我的想法的一个例子://Theseitemswillbedisplayedinalistonthescreen.publicinterfaceIListItem{stringScreenName();...}publicclassAnimal:IListItem{//Allanimalswillbecalled"Animal".publicstaticstringScreenNam