【c#接口】教程文章相关的互联网学习教程文章

类中的C#调用接口方法【代码】

interface ILol {void LOL(); }class Rofl : ILol {void ILol.LOL(){GlobalLOLHandler.RaiseROFLCOPTER(this);}public Rofl(){//Is there shorter way of writing this or i is there "other" problem with implementation??(this as ILol).LOL();} }解决方法:您已经实现了接口explicitly,通常您不需要这样做.相反,只需隐式实现它,并像任何其他方法一样调用它:class Rofl : ILol {public void LOL() { ... }public Rofl(){LOL();}...

c# – IDictionary接口的用途【代码】

IDictionary接口有什么需要.如何初始化IDictionary接口.毕竟它只是一个界面.以下代码段来自msdn.我无法理解.IDictionary<string, string> openWith = new Dictionary<string, string>();解决方法:它定义了Dictionary应该实现的重要的functions. 来自MSDN的行意味着您正在创建一个对象openWith,它实现了IDictionary接口中定义的函数(方法). 当您使用Dictionary来声明变量时:Dictionary<string,string> openWith=.....;你绑定具体类...

c# – 为什么通用类型定义实现的接口会丢失类型信息?【代码】

例如,如果您运行以下代码…Type IListType = new List<string>().GetType().GetInterface("IList`1").GetGenericTypeDefinition();…并且您观察IListType变量,您会发现整个Type实例具有FullName等所有可用属性. 但是当你运行代码时会发生什么?Type IListType2 = typeof(List<>).GetInterface("IList`1")现在从泛型类型定义得到的IListType与第一个代码示例不同:大多数Type属性将返回null. 这个问题的主要问题是IListType == ILis...

c# – 创建接口子类的实例【代码】

我有接口和3个派生它的类,但是如何为每个类型使用1个变量?public interface IBuilder<T> where T: System.IConvertible{}public class SimpleBuilder : IBuilder<SimpleCollagePatterns>{}public class CreativeBuilder : IBuilder<CreativeCollagePatterns>{}public class ShapeBuilder : IBuilder<ShapeCollagePatterns>{}我需要在必要时创建类的实例 我有IBuilder< IConvertible> currentBuilder变量,但我无法创建任何Builder...

在Visual Studio中获取C#类的所有接口

参见英文答案 > How to find out which interfaces a .net class implements? 4个有没有办法在Visual Studio UI中获取C#类的所有接口列表,而无需逐步挖掘超类链?如果不是甚至MSDN上的列表将是有用的. 例如,我没有看到Form是IDisposable而没有深入到Control.解决方法:GetInterfaces:typeof运算(列表与LT;串GT).GetInterfaces()回报 输入[](8项)4typeof运算(IList的&LT字符串&GT)typeof运算(IC...

c# – Autofac:如何解析类的所有通用接口【代码】

我在这里有这样的层次结构:public interface I<out T> {T GetItem(); }public class C : I<Item1>, I<Item2> {Item1 I<Item1>.GetItem() => new Item1();Item2 I<Item2>.GetItem() => new Item2(); }public interface IItem { string Name { get; } } public class Item1 : IItem { public string Name => "i1"; } public class Item2 : IItem { public string Name => "i2"; }重点是类C实现了两种形式的通用协变接口. 我希望auto...

c# – 2个WCF服务,1个通用接口,多个头痛【代码】

我有2个WCF服务,它们从一个单独的库实现一个接口.接口的方法未标记WebGet或WebInvoke属性.但是,一个服务将处理POST请求,而另一个服务正在处理GET请求.所以它有点像这样: 服务1:处理所有POST请求.请求是JSON,响应是JSON.从接口继承和实现的所有方法都使用WebInvoke标记 服务2:处理所有GET请求.请求是JSON,响应是JSONP.从接口继承和建议的所有方法都用WebGet标记 到现在为止还挺好.现在解雇这些家伙aaaaa和splat.这是我得到的错误...

c# – 在抽象类中实现接口【代码】

是否可以在抽象类中实现接口并将实现的接口方法更改为抽象?interface ITest {string GetData();int ProcessData(); }public abstract class MyAbstract:ITest {public int Process(){// some code}public abstract string GetData(); // Change the implemented method into abstract Is it Possible? }解决方法:是的,你可以做到.只需添加abstract关键字并删除实现.这显然是一个陷阱.任何继承自抽象类的类都必须自己实现GetData.根...

将继承转换为从C#到VB.NET的接口【代码】

如何将以下代码转换为VB.NET?class A {public int NumberA { get; set; } }class B : A, I {public int NumberB { get; set; } }interface I {int NumberA { get; set; }int NumberB { get; set; } }在VB.NET中,属性声明后的Implements关键字存在问题.所以我需要做这样的事情:Class BInherits AImplements ICPublic Property NumberB() As Integer Implements IC.NumberBGetReturn m_NumberBEnd GetSet(ByVal value As Integer)m...

c# – 使用具有流畅接口的类型推断【代码】

我有一个类/接口层次结构.在接口方面我有IQueryISelect (inherits IQuery)IUpdate (inherits IQuery)etc在课堂上我有QueryBase (implements IQuery)SelectQuery (implements ISelect)UpdateQuery (implements IUpdate)etc显然,例如,Update类和Select类共享一个WHERE子句,但只有一个Select具有GROUP BY功能,所以理想情况下,如果正在创建更新查询,则流畅的接口将不会提供对GROUP BY功能的访问,但是如果SelectQue...

c# – 如何在Mac上的Mono中获得网络接口列表?【代码】

在MonoDevelop中创建一个Mono控制台应用程序,针对OS X上的Mono / .NET 4.0,用作TCP套接字服务器. 以下代码行失败(通常在Windows方面使用):var interfaces = NetworkInterface.GetAllNetworkInterfaces();…有错误System.DllNotFoundException:iphlpapi.dll 我能说的最好只在Windows和Linux上支持.但是,似乎还有另一种为Mac设计的方法:System.Net.NetworkInformation.MacOsNetworkInterface.GetAllNetworkInterfaces();虽然MonoD...

CAD绘制块(com接口c#语言)

主要用到函数说明:_DMxDrawX::DrawBlockReference绘制块引用对象。详细说明如下:参数说明DOUBLE dPosX插入点的X坐标DOUBLE dPosY插入点的Y坐标BSTR pszBlkName图块名DOUBLE dScale图块缩放比例DOUBLE dAng图块的旋转角度C#中实现代码说明:private void DynInsert() {//把颜色改回黑白色axMxDrawX1.DrawCADColorIndex = 0;//创建一个图层,名为"BlockLayer"axMxDrawX1.AddLayer("BlockLayer");//设置当前图层为"BlockLayer"axMxDr...

c# – 使用ServiceStack.Text序列化接口类型列表【代码】

我正在寻找将BinaryFormatter序列化以外的东西引入我的应用程序以最终使用Redis的方法. ServiceStack JSON是我想要使用的,但它可以用接口做我需要的吗?它可以序列化(通过插入自定义__type属性)public IAsset Content;但不是public List<IAsset> Contents;– 列表在序列化数据中显示为空.有没有办法做到这一点 – 序列化接口类型列表? 该应用程序是大而老的,它使用的对象的形状可能不会被允许改变.谢谢解决方法:引自http://www.se...

c# – 使Point3D成为从Point2D派生并实现IPoint3D接口的引用类型的原因?【代码】

抱歉,如果这对Code Review堆栈交换更好,但我认为,因为这个问题并不是专门针对代码,而是更多关于引用和值类型之间的概念差异,这里似乎更好. 搜索给了我这个稍微相关的问题:Best Way of Implementing these 3 classes in C#: Vector, Direction (unit vector), Point – 但它并不完全.另一方面,搜索“参考与值类型”会给出过于宽泛的答案. 最近我开始使用新的C#代码库.有很多现有的代码,其中包括:public interface IPoint2D {doub...

c# – 从另一个类和线程的接口回调更新winform【代码】

我有一个winform和一个连续发送更新的接口回调.我希望能够从回调接口更新label1.Text.然而,因为inface在一个单独的线程上运行,我不认为我可以直接执行它所以我试图使用委托并调用. 但是我遇到了一个错误: 在创建窗口句柄之前,无法在控件上调用Invoke或BeginInvoke – atform1.Invoke(form1.myDelegate, new Object[] { so.getString() });这是完整的代码.public partial class Form1 : Form{MyCallBack callback;public delegat...