explicit-implementation相关内容
关于 C# 语言设计的小问题 :)) 如果我有这样的界面: interface IFoo {整数值{得到;放;}} 可以使用 C# 3.0 自动实现的属性显式实现此类接口: 密封类 Foo : IFoo {int IFoo.Value { 获取;放;}} 但是如果我在界面中有一个事件: interface IFoo {事件 EventHandler 事件;} 并尝试使用类似字段的
..
我有一种情况,两个类(一个派生自另一个)都显式地实现了相同的接口: 接口I{整数 M();}A级:我{int I.M() { 返回 1;}}B类:A,我{int I.M() { 返回 2;}} 从I.M()的派生类的实现,我想调用基类的实现,但我不知道怎么做.到目前为止我尝试的是这个(在 B 类中): int I.M() { return (base as I).M() + 2;}//这给出
..
通常,我会像这样访问反射中的方法: Foo类{公共无效M(){var m = this.GetType().GetMethod("M");m.Invoke(this,new object [] {});//注意双关语}} 但是,当M是显式实现时,此操作将失败: class Foo:SomeBase{无效SomeBase.M(){var m = this.GetType().GetMet
..
请考虑以下三个界面: interface IBaseInterface { event EventHandler SomeEvent; } interface IInterface1:IBaseInterface { ... } 接口IInterface2:IBaseInterface { ... } 现在考虑下面的类, IInter
..
这里的故事。我创建了一个接口, IVehicle 。我明确实现的接口在我的课, Vehicle.cs 下面是我的界面: 接口IVehicle { INT getWheel(); } 这是我的类: 类车辆:IVehicle { 公众诠释IVehicle.getWheel() { 返回轮; } 公共无效打印轮() { Console.
..
我从以下属性得到一个编译错误。结果 中的错误是: “修改器”公众“是无效的此项目” 公共System.Collections.Specialized.StringDictionary IWorkItemControl.Properties { 获得{返回性能; } 集合{=属性值; } } 但如果我删除IWorkItemControl它编译罚款。
..
有关C#语言设计小问题:)) 如果我有一个像这样的接口: 接口的IFoo { int值{搞定;组; } } 这是可能的使用C#3.0自动实现的属性明确地实现这样的接口: 密封类Foo:IFoo的{ INT IFoo.Value {搞定;组; } } 但是,如果我在界面的事件: 接口的IFoo { 事件的EventHandle
..
我和接口明确implentations试验。这与它们在当前上下文中有效的方法来剥离智能感知。 使用的 /实际应用的最自适应接口图案最流畅的建设者上下文/ 作为参考。为了证明自己不会被调用,我想我可以使用动态关键字,因为那样的话,至少我的代码将编译。它编译,但如预期它不起作用。动态变量可以访问类的方法,而不是接口方法是明确的实现。 公共接口IAmInterface { 无效明确();
..
在试图重写的ICollection<的显式接口实现; T> .IsReadOnly 物业的收藏< T> 类,我碰到一些文件,说明显式接口成员实现不能被覆盖,因为他们不能有修饰语,如虚拟来到或摘要。在 MSDN 的,他们甚至去尽可能指定如何做出明确接口通过创建另一个则是由显式接口成员实现调用抽象的或虚拟的成员可以继承成员的实现。 。没有问题至今 但后来我想:为什么有可能在
..
在C#中,如果你有同样的方法两个基接口(比如,F()),可以使用明确的执行来执行不同的implement执行。与F()。这alloes你区别对待的对象,对应目前来看:作为IMyInterface1或IMyInterface2。这是可能在Java中? 解决方案 没有,没有什么像Java的C#显式接口实现。 在加方,Java有协变返回类型,所以如果你想提供比接口指定一个更强类型的实现,那
..
我有一种情况,其中两班(从另一个派生)都明确地实现相同的接口: 接口I { INT M(); } A级:我 { 肌内INT(){返回1; } } B类:A,我 { 肌内INT(){返回2; } } 从 IM的派生类的实现(),我想调用基类的实现,但我看不出怎么办呢。我试过到目前为止,这是(B类): INT肌内(){回报(基地I).M()+ 2; } //这给出了一个编译时错误 /
..