c#interface实现,带有接口属性
我开始进一步深入研究C#编程,并与界面陷入困境. 我了解界面的基础知识,因为它们应该是任何实现它们的班级的"合同".接口中定义的任何内容都需要在任何继承的类(不确定是否正确的术语)中实现. 因此,我将属性添加到一个本身就是接口的接口中.尝试实现父接口时,我将属性添加到我的类中,该类是一个实现父界面属性的界面的类.这种解释可能有点令人困惑,所以我在下面添加了一些代码. interface IPropertyThatIsAnInterface { public int X { get; set; } } class ClassThatImplementsIPropertyThatIsAnInterface : IPropertyThatIsAnInterface { public int X { get; set; } } interface IAnInterface { public IPropertyThatIsAnInterface In
8 2024-04-20
编程技术问答社区
在MVC4中显示了一个错误,我必须实现一些接口,但我已经完成了。
我正在尝试创建自己的滤镜属性以支持多语言. 这个想法很简单. URL代表语言. * http://host.ext/ en /rest_of_the_url*将以英语和 打开 * http://host.ext/ hy /rest_of_the_url*将在亚美尼亚人打开. 问题是在运行时说多语言filterattribute 这是错误文本:"给定过滤器实例必须实现以下一个或多个过滤器接口:iAuthorizationFilter,iRinctionFilter,iresultfilter,iexceptionfilter." > 在这里我将其用作全局过滤器. namespace TIKSN.STOZE.WebApp { public class FilterConfig { public static void RegisterGlobalFilters(System.Web.Mvc.GlobalFilterCollecti
0 2024-04-18
编程技术问答社区
为什么这个实现者方法没有看到它的兄弟姐妹?
我有一个实现接口的类: public class SQLiteHHSDBUtils : IHHSDBUtils { void IHHSDBUtils.SetupDB() { . . . if (!TableExists("AppSettings")) . . . bool IHHSDBUtils.TableExists(string tableName) { . . . 它找不到坐在下面的兄弟(if (!TableExists()): 名称" tableexists"在当前上下文中不存在 如何/为什么看不到它? 解决方案 您具有显式接口实现.除非您将当前实例施放到接口类型: 除非将当前实例施加到: 除非直接访问接口方法: if (!((IHHSDBUtils)this).TableExists("AppSettings")) 来自 13.4.1
4 2024-04-17
编程技术问答社区
C# 钻石式继承(接口实现)
如果一个类从两个单独的接口实现接口,它的行为是否完全好像仅实施一次? 示例: public interface IAnimal { /* ... */ } public interface IFullAnimal : IAnimal { /* ... */ } public interface IBear : IAnimal { /* ... */ } public interface IFullBear : IBear, IFullAnimal { /* ... */ } // and implementing IFullBear: public class FullBear : IFullBear { /* ... */ } 上面,FullBear从IFullAnimal和IBear到IFullBear实现IAnimal.这是否介绍了有关实施Ianimal 的任何怪异行为,因为IFullAnimal和IBear均未提供有关实施IAnimal 的任何信息(因为语言不
2 2024-04-16
编程技术问答社区
从加载的程序集中找到实现接口的对象--如何比较类型?
我有类,可以将所有程序集加载到目录中,然后将所有类型的类型视为是否实现接口. 我无法进行类型的比较.在调试器中,我看到我的类型已加载(我感兴趣的一种),如果总是未能进行比较.如果我在本地使用相同的比较代码,则没有问题,我会得到预期的结果.我可以对类型接口进行比较,但我宁愿知道我在做什么错. 测试: // Fails [Fact] public void FindISerialPortTest() { var path = Directory.GetCurrentDirectory(); var results = FindImplementers.GetInterfaceImplementor(path); results.Length.Should().Be(1); results[0].Should().BeAssignableTo
4 2024-04-16
编程技术问答社区
如何快速找到一个接口方法的实现?
是否有一种快速的方法可以找到接口的方法/属性/等的所有实现,而不是引用?这是一些示例代码: public class SomeClass : IBaseClass { public Int32 GetInt() { return 1; } } public interface IBaseClass { public Int32 GetInt(); } public class SomeOtherClass { IBaseClass _someClass; private TestMethod() { _someClass = new SomeClass(); _someClass.GetInt(); } } 我想在查看某个otherclass.testmethod()时快速到达someclass.getInt().如果我右键单击_someclass.getInt(),然后单击"转到定义",它将带我到界面.如果我单击"
2 2024-04-11
编程技术问答社区
在C#中,所有的数组都实现了哪些接口?
作为一个新的.NET 3.5程序员,我开始学习Linq,我发现了以前从未注意到的非常基本的东西: 本书声称每个数组都实现IEnumerable(显然,否则我们无法将linq在数组上使用到对象...).当我看到这一点时,我对自己说我从未真正考虑过,我问自己,所有阵列都会实现什么 - 所以我检查了 System.Array使用对象浏览器(因为它是CLR中每个数组的基类),而且令我惊讶的是,它不能实现IEnumerable. 所以我的问题是:定义在哪里?我的意思是,我该如何确切地分辨出每个数组的实现? 解决方案 来自文档: [...]数组类实现System.Collections.Generic.IList,System.Collections.Generic.ICollection和System.Collections.Generic.IEnumerable通用接口. 在运行时提供了将实现用于数组,因此文档构建工具不可见. 编辑:
2 2024-04-10
编程技术问答社区
我们能不能在Spring中不通过任何实现来自动连接一个接口?
我们必须与合作伙伴共享我们的代码基础,但我们不想揭示某些服务的实施. 说我们有一个接口FooService及其实现FooServiceImpl. public interface FooService { void doSomething(); } @Service public class FooServiceImpl implements FooService { @Override public String doSomething(); { ... } } 许多其他类自动拨动此服务并致电Dosomething().例如: @Service public class BarServiceImpl implements BarService { @Autowired private FooService fooService; @Override public Stri
14 2024-03-21
编程技术问答社区
一个类可以扩展Collection对象吗?
我正在尝试在新类中扩展vba Collection对象的功能,并使此类成为Collection的继承,但是Implements Collection语句给我以下错误: 实施的不良接口:方法 具有其名称. 什么强调? Add,Item,Remove和Count是Collection文档中列出的唯一方法.这四个都不明显. edit :要澄清,我正在做一个称为UniformCollection的类(仅接受所有类型的成员,灵感来自我知道我必须为For Each工作的添加,项目等编写委派方法/属性,并且我已经这样做了. 我的问题是Implements Collection语句给我上述错误. 奖励问题:Count是Collection的方法还是属性?帮助称其为属性,但是VBA编辑器中的对象浏览器称其为函数,即方法(飞黄色框). 解决方案 您正在遇到VBA中实施的局限性之一.如果其他类具有任何公共方法或属性,则无法实现另一个类. Collection类别的类别具有
20 2023-11-15
编程技术问答社区
错误,我必须在一个类中实现一个函数,尽管函数已被定义。
我得到错误:Class 'QueryParameterComparer' must implement 'Function Compare(x As QueryParameter, y As QueryParameter) As Integer' for interface 'System.Collections.Generic.IComparer(Of QueryParameter)'. 在此类定义上: Protected Class QueryParameterComparer Implements IComparer(Of QueryParameter) Public Function Compare(x As QueryParameter, y As QueryParameter) As Integer If x.Name = y.Name Then Return Str
14 2023-11-14
编程技术问答社区
在C#中,是否可以像在VB.NET中那样,使用不同名称的成员来实现一个接口成员?
好吧,这是我要问的问题,而不是表现出良好的编码实践(实际上可以认为是不良的做法),而是关于"可以"的问题. 也就是说,在vb.net中,您实现了这样的接口... Sub SomeInterfaceMember() Implements ISomeInterface.SomeInterfaceMember End Sub 在C#中,您会明确地这样做(只能通过接口来调用)... void ISomeInterface.SomeInterfaceMember(){} 或更简单地,隐含地这样(在这种情况下,您可以直接调用它,也可以通过接口调用)... void SomeInterfaceMember(){} //
20 2023-11-14
编程技术问答社区
Stack<T>实现了ICollection,但有来自ICollection<T>的方法。
我正在尝试基于Stack创建自定义集合.当我在Visual Studio中查看Stack [来自元数据]时,它表明Stack实施ICollection,这将要求它实现ICollection的CopyTo(Array array, index) CopyTo(Array array, index)方法,但相反,它显示为具有ICollection的CopyTo(T[] array, index)方法.有人可以解释为什么是这种情况吗? 我正在尝试创建一个模仿Stack的集合.当我像堆栈一样实现ICollection时,它要求我使用CopyTo(Array array, index)方法,但是我真正想要的是使用CopyTo(T[] array, index)方法,例如Stack.有没有实现ICollection? 的方法来实现这一目标 解决方案 正如其他人所写的,您可以使用显式接口实现来满足您的非传播接口: void ICollecti
16 2023-09-28
编程技术问答社区
当抽象的超类包含一个工厂方法时,如何访问它的实现?
我有一个抽象超类,其工厂返回子类实例.是否可以使用仅在超类中实现的方法?例如,在以下代码中,是否可以删除Wind :: Act()? abstract class Element { final String action; // what it does String act() => action; // do it factory Element() { return new Wind(); } } class Wind implements Element { final action = "blows"; act() => action; // Why is this necessary? } void main() { print(new Element().act()); } 删除Wind :: Act()时,缺少它的错误.同样,当扩展而不是实现超类时,遗漏了子类实现并不会导致错误.但是使用工厂方法,扩展不是一个
42 2023-06-10
编程技术问答社区
如何自动生成实现接口的方法
phpstorm有没有办法自动生成给定类正在实现的接口所需的空方法? 说我们有一个带有3种方法的接口 - 定义实现此接口的新类时 - 某些选项可以自动生成容器以获取所有必需的方法. 解决方案 从我的评论中:您可以尝试 alt + enter .这种常态显示了一个小的"对话",以使PHPDOC,功能等自动化. 其他解决方案 当然可以. 有3种方法: 按 Ctrl + I 在主菜单上,单击 Code --> Implement Methods 在代码编辑器上,按右键单击鼠标,然后单击 Generate --> Implement Methods 之后,您可以选择一种或一些方法,然后单击"确定".
66 2023-06-06
编程技术问答社区
基类实现基接口,派生/具体类实现扩展接口,为什么?
我正在遵循一本书,即" .net域驱动的设计". 问题基于场景,如下图所示: 图: http://screencast.com/t/a9uuljvw0 在此图中, a)iRepository接口由(抽象基类)repositorybase实现,而 b)iRepository界面也通过接口ICompanyRepository(icompanyrepository : irepository)扩展. c)icompanyRepository由公司repository实现,该公司是从sqlrepositorybase派生的,该基础是从repositorybase派生的(;如A点中所述)实现IREpository,并实现IREPOSITOR,如果是iCompanyRepository,则是父母的). d)我创建一个接口ICompanyRepository的变量,该变量具有Clas CompanyRepository对象的引用,如下: ICompany
38 2023-05-22
编程技术问答社区
libxml2是否支持XPath 2.0?
我尝试使用XPath 2.0 exp //span/string(.)在libxml2中,但它不起作用. 所以,我的问题是:libxml2支持XPath 2.0是否? 据我所知, 解决方案 不是. XPATH 2.0实现的主要多数是XSLT 2.0处理器或Xquery处理器的一部分. 其他解决方案 根据此2007电子邮件不会也不会支持XPath 2.0. 其他解决方案 您可能对 xPath 2.0扩展到libxml2 - 但是, 2个警告:正在进行中的工作,仅用于非商业用途. 希望这会有所帮助, 最好的问候,Carsten ps: 我既不隶属于从事libx的人,也没有任何个人经验或超越他们网站的信息的知识.
14 2023-05-04
编程技术问答社区
实现JSR-353(JSON)的API是什么
我刚刚发现杰克逊没有实现JSR-353,我们已经设计了该模块.因此,我迫切地急于找到该API的替代品以开始工作! :D 我搜索了实现标准但找不到任何有趣结果的API,因为我们计划使用标准进行编码并迫使系统使用特定实现(我拼命搜索的API) 解决方案 参考实施 这是 >其继任者 jsr 374: JSON处理1.1 Java EE 8: https://javaee.github.io/jsonp/ 绑定 相关是 jsr 367:用于JSON BINDING(JSON-B) 及其参考实现, eclipse yasson . 其他解决方案 Genson Genson库声称要实现JSR-353. 我没有自己尝试过.最近,我还在寻找一个很好的JSON图书馆,我尝试了其中的3个,最终与Jackson一起定居,因为它最好满足我的需求.不同的是,我不是在寻找精确实现标准的库,我只是在寻找简单的东西,并且可以做我想做的事情. 您也可以检查G
22 2023-02-17
编程技术问答社区
我可以全局地设置使用的接口实现吗?
我有一个接口: public interface IHHSDBUtils { void SetupDB(); bool TableExists(string tableName); . . . ...有多个实施者: public class SQLiteHHSDBUtils : IHHSDBUtils public class SQCEHHSDBUtils : IHHSDBUtils public class FlatfileHHSDBUtils : IHHSDBUtils public class TestHHSDBUtils : IHHSDBUtils 我希望能够从全球可访问的位置指定哪个实施者,例如: public static class HHSConsts { public static IHHSDBUtils hhsdbutil = SQLiteHHSDBUtils; ...然后从应用中的任何地方称呼它:
在覆盖继承的方法时,避免明确的类型转换
我有一个基本的抽象类,也实现了特定的接口. public interface IMovable where TEntity: class where T: struct { TEntity Move(IMover moverProvider); } public abstract class Animal : IMovable { ... public virtual Animal Move(IMover moverProvider) { // performs movement using provided mover } } 然后,我继承了类,其中一些必须覆盖基类的接口实现方法. public class Snake : Animal { ... public override Animal Move(IMov
18 2023-02-09
编程技术问答社区
C# 8.0默认接口成员的意外行为
考虑以下代码: interface I { string M1() => "I.M1"; string M2() => "I.M2"; } abstract class A : I {} class C : A { public string M1() => "C.M1"; public virtual string M2() => "C.M2"; } class Program { static void Main() { I obj = new C(); System.Console.WriteLine(obj.M1()); System.Console.WriteLine(obj.M2()); } } 它在.NET Core 3.1.402中产生以下意外输出: I.M1 C.M2 class A没有I成员的隐式或明确实现,因此我希望默认实现用于C,因为C继承了A
34 2023-02-09
编程技术问答社区