【c# – 使用具有流畅接口的类型推断】教程文章相关的互联网学习教程文章

c# – .Net接口的二进制兼容性【代码】

假设我们在C#中定义了一个基本接口,如下所示:interface IBase {int Prop1 { get; set }string Prop2 { get; set } }然后我们有一个派生接口如下:interface ISub1: IBase {int Prop3 { get; set } }这些接口在API程序集中定义,自定义应用程序可以编译和运行. (程序集还包括实现这些接口的非公开类和用于获取实例的公共工厂方法).所有现存代码都使用ISub1,没有直接引用IBase的现有代码.这是以这种方式完成的,因为我们最终可能希望引...

c# – 将具体类型的ICollection转换为具体类型接口的ICollection【代码】

推荐ICollection< Bar>的推荐方法是什么? ICollection< IBar> Bar实施IBar的地方? 这很简单吗?collection = new List<Bar>(); ICollection<IBar> = collection as ICollection<IBar>?或者有更好的方法吗?解决方法:您必须转换列表中的每个项目并创建一个新项目,例如使用Cast:ICollection<IBar> ibarColl = collection.Cast<IBar>().ToList();在.NET 4中,使用IEnumerable< T>的协方差:ICollection<IBar> ibarColl = collection...

c# – 获取接口属性的运行时getter【代码】

声明:interface I {int i { get; set; } }class C : I {public int i { get; set; } }码:C c = new C(); c.i = 10; PropertyInfo pi1 =c.GetType().GetInterfaces().SelectMany(t => t.GetProperties()).ToArray()[0]; PropertyInfo pi2 =c.GetType().GetProperties()[0]; object v1 = pi1.GetValue(c); object v2 = pi2.GetValue(c);嘿,v1 == v2,pi1!= pi2,但GetValue显然调用相同的方法.我如何在我的代码中知道pi1和pi2调用相...

如何在C#中基于层次结构接口初始化对象【代码】

我有一个接口ICommandHandler< TCommand>其中TCommand的类型为ICommand(另一个接口).SomeWorkProcessCommandHandler类实现ICommandHandler. 我无法做的是将SomeWorkProcessCommandHandler类传递给另一个类,它在构造函数中需要ICommandHandler 在下面的代码中,Manager类需要ICommandHandler< TCommand>在它的构造函数中.当我传递someWorkProcessCommandHandler对象时,我收到编译时错误.如果我投了它我会得到运行时异常. 如何在构造函...

c# – 内部接口实现的奇怪限制【代码】

我有代码internal interface IFoo {void foo(); }public class A : IFoo {// error CS0737: 'A' does not implement interface member 'IFoo.foo()'. //'A.foo()' cannot implement an interface member because it is not public.internal void foo(){Console.WriteLine("A");} }为何如此奇怪的限制?我有内部接口,为什么我不能在接口实现中创建内部方法?解决方法:这是因为接口无法指定有关成员可见性的任何内容,只能指定成员本身...

c# – 查询Unity的所有接口实例【代码】

我需要在我的项目中找到所有实现名为IMyInterface的接口并在Unity容器中注册的类. 任何人都知道这样做的方法,没有统一创建在Unity注册的对象的实例?解决方法:您可以使用类似的查询在容器实例中查询注册var x = container.Registrations.Where(cm => cm.RegisteredType == typeof(IMyInterface));

c# – Ninject:如何根据目标程序集绑定接口【代码】

我有一个由两个不同的类实现的接口.然后,我怎么能对Ninject说我想将它绑定到某个程序集中的实现A和其他程序集中的实现B?解决方法:你可以使用contextual binding:Bind<IFoo>.To<Foo>.When(request =>request.Target.Type.Assembly.FullName == "someAssembly"); Bind<IFoo>.To<Bar>.When(request =>request.Target.Type.Assembly.FullName == "someOtherAssembly");

Scala是否有类似于C#的显式接口实现?【代码】

在C#中,您可以明确地实现接口.然后,只能通过将接口作为其静态类型的变量来调用明确实现的方法.这允许您避免名称/返回类型冲突,并根据其静态类型提供相同方法的不同实现. 例如:interface IFoo {int DoSomething(); }interface IBar {string DoSomething(); }class Impl : IFoo, IBar {int IFoo.DoSomething() { /* Implementation for IFoo */ }string IBar.DoSomething() { /* A different implementation for IBar */ }public vo...

c# – 在f#中实现接口【代码】

这是我的c#界面:public interface ITemplateService {string RenderTemplate(object model, string templateName);string RenderTemplate(object model, string templateName, string directory); }我正在尝试在F#中进行实现,但在关键字结束时出错. (实现文件中的意外结束)module TemplateServiceopen DotLiquidtype TemplateService = inherit ITemplateServicemember this.RenderTemplate model (templateName:string):string =...

为什么子类需要实现父接口来隐藏C#中的父类方法之一?【代码】

我在使用第三方库时发现了这种行为,我需要隐藏并更改其中一种方法. 我有以下设置:interface IBaseInterface {string MethodToHide(); }class BaseClass : IBaseInterface {public string MethodToHide(){return "BaseClass";} }class ChildClass : BaseClass {new public string MethodToHide(){return "ChildClass";} }为什么当我运行以下内容时:var i = (IBaseInterface) (new ChildClass()); Console.WriteLine(i.MethodToHid...

c# – 如何调用显式请求的接口方法的基类实现?【代码】

我试图调用在基类上实现的显式实现的接口方法,但似乎无法让它工作.我同意这个想法是丑陋的,但我已经尝试了我能想到的每一个组合,但无济于事.在这种情况下,我可以改变基类,但我想我会问这个问题是为了满足我的普遍好奇心. 有任何想法吗?// example interface interface MyInterface {bool DoSomething(); }// BaseClass explicitly implements the interface public class BaseClass : MyInterface {bool MyInterface.DoSomething(...

c# – 实现接口的通用基类【代码】

如何在asp.net webforms项目中声明我的Basepage类以实现IBasePage?public abstract class BasePage<T> : Page where T : class {}和界面public interface IBasePage{UserProfile UserProfile { get;}bool IsStreamingAdmin {get;}int? EmplId {get;} }我的最终目标是能够编写如下代码:IBasePage page = HttpContext.Current.Handler as IBasePage; if (page.IsStreamingAdmin) {//do something here.... }解决方法:你的问题...

c# – 如果一个类继承自己实现IDisposable的接口,那么该类是否也应该实现IDisposable?【代码】

如果一个类继承自己实现IDisposable的接口,那么该类是否也应该实现IDisposable? 例如internal IMyInterface : IDisposable {Method1(); }internal ClassA : IMyInterface, IDisposable {public Method1{...}public Dispose(){...}}要么internal ClassA : IMyInterface {public Method1{...}public Dispose(){...}}对此事的任何澄清都将非常感激.谢谢解决方法:接口是契约,没有任何实现.因此,实现接口的类必须实现直接或间接继承的接...

在C#中查找接口索引【代码】

如何在C#中获取连接的interace索引? 如果索引不是标准术语,我的意思是与接口关联的数字,例如当您使用命令“netsh int ipv4 show int”按左侧的索引列出您的连接时.它也用于“路由添加[网关]掩码[索引]如果[接口索引]”. 我知道接口的名称和描述,所以使用NetworkInterface.GetAllNetworkInterfaces()然后找到合适的接口是相当直接的.从那里,我找不到索引.我认为ID可能是相同的,但它具有“{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}”形...

c# – 返回接口类型列表【代码】

我有三个继承自相同界面的clasess:Apple:Resource Banana:Resource Orange:Resource我在另一个类中列出了每个类型为op的类型:private List<Apple> apples = new List<Banana>(); private List<Banana> bananas = new List<Empleado>(); private List<Orange> oranges = new List<Orange>();现在我想要一个可以返回任何列表的方法,让我们这样说:public List<Resource> getListOf(string resource) {switch (resource){case "appl...