草庐IT

dll-interface

全部标签

c# - 分配给接口(interface)数组初始化程序编译但为什么呢?

今天我在想做一些接口(interface)类型的匿名对象会很整洁,我在SO上看到我不仅仅是一个。在开始检查发生了什么之前,我编写了一些代码,如下所示。令我高兴的是,它编译后,我使用的是.netframework4,我知道没有办法让匿名对象实现接口(interface),但我没有看到VS对这段代码的提示。更好的是,当我放入大括号时,intelisense正在查找我的界面的“属性”,就像它是有效代码一样。为什么这篇文章编译时出现空引用异常?namespacetest{classProgram{staticvoidMain(string[]args){Holderholder=newHold

c# - Oracle.ManagedDataAccess.dll 中的 OracleBulkCopy 类?

我正在使用OracleBulkCopy类并引用Oracle.DataAccess.dll。我想使用Oracle.ManagedDataAccess.dll来轻松部署。但是后来我得到了构建错误“找不到OracleBulkCopy”有谁知道为什么Oracle.ManagedDataAccess.dll中没有包含OracleBulkCopy? 最佳答案 你是对的。在撰写本文时,OracleBulkCopy在ODP.NET托管驱动程序中不受支持。未包含的原因仅仅是功能优先级问题。随着托管驱动程序的功能越来越完善,最终将添加OracleBul

c# - 记录接口(interface)抛出的异常是好的做法吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭7年前。Improvethisquestion正如标题所说:记录接口(interface)抛出的异常是好的做法吗?是否存在普遍认可的最佳实践?我觉得这是一个不应以任何方式包含在界面中的实现细节,但同时我觉得它是界面用户应该拥有的有值(value)的信息。这样的评论是否是一个好的做法是另一个讨论的话题,所以为了限制这个问题的范围,让我们假设我们已经同意用这样的评论记录代码是一个很好的做法。这里的“像这样的评论”是指您可以从中生成内容的评

c# - 如何在包含第三方 DLL 文件的同时部署 C# 应用程序?

首先,我不太了解部署。我希望我的问题是有道理的。我需要将C#应用程序安装/部署到多个桌面。它需要一个第三方DLL文件:一个C++库(“lpsolve55.dll”,对于那些感兴趣的人来说,它是一个免费的MIP/LP求解器,请参见lpsolve.sourceforge.net/5.5/)。我通过以下方式在我的代码中使用它:[DllImport("lpsolve55.dll",SetLastError=true)]publicstaticexternbooladd_column(intlp,double[]column);为了测试,我手动将.dll文件复制到project\bin\rele

c# - 为什么 .NET ObservableCollection<T> 实现为类而不是接口(interface)?

在阅读观察者设计模式时,我注意到它是使用接口(interface)实现的。在Java中,java.util.observable实现也是一个类。C#和Java版本不应该使用接口(interface)吗?斯科特 最佳答案 好吧,它实现了INotifyCollectionChanged和INotifyPropertyChanged.然而,有趣的是,它没有实现新的IObservable来自.NET4.0的界面,您可能已经预料到了。有一个通用形式的INotifyCollectionChanged可以说是有用的...但我不知道有一个。

c# - 创建实现内部接口(interface)的类型

假设我有声明内部接口(interface)IInternalInterface的程序集。我无权访问此程序集的代码,也无法更改它。如何创建自己的IInternalInterface实现?为什么我需要这个:程序集包含带有IInternalInterface实现者列表的类,我的目标是在那里添加我自己的实现。 最佳答案 可以使用远程代理。请注意,我的回答只是一个草图,可能需要进一步改进。internalinterfaceIInternalInterface{voidSayHello();}//------------------------

c# - C DLL 中的 PInvoke char* 在 C# 中处理为字符串。空字符问题

CDLL中的函数如下所示:intmy_Funct(char*input,char*output);我必须从C#应用程序调用它。我通过以下方式执行此操作:...DllImportstuff...publicstaticexternintmy_Funct(stringinput,stringoutput);输入字符串完美地传输到DLL(我有可见的证据)。该函数填写的输出虽然是错误的。我有hexa数据,比如:3F-D9-00-01但不幸的是,两个零之后的所有内容都被截断了,只有前两个字节进入了我的C#应用程序。它发生了,因为(我猜)它被视为空字符并将其作为字符串的结尾。知道如何摆脱它吗?我试

c# - 当我们创建接口(interface)对象时会发生什么?

这个问题在这里已经有了答案:UsingInterfacevariables(12个答案)关闭9年前。我是C#接口(interface)的新手。那么有人可以解释一下当我们创建接口(interface)对象时实际发生了什么吗?我知道为什么我们有其他语言的接口(interface),但无法真正理解为什么C#允许创建接口(interface)的对象(实例)的逻辑?如果接口(interface)没有函数定义或变量,那么如何创建对象?我一直在论坛上搜索,但找不到要点。这是我在界面上找到的教程http://www.c-sharpcorner.com/uploadfile/6897bc/interfa

c# - IoC、Dll 引用和程序集扫描

虽然这个问题与StructureMap有关,但我的一般问题是:WhenwiringupcomponentswithanIoCcontainerincode(asopposedtoconfiguringviaxml)doyougenerallyneedexplicitproject/buildreferencestoallassemblies?为什么要分开组装?因为:"Abstractclassesresidinginaseparateassemblyfromtheirconcreteimplementationsareagreatwaytoachievesuchseparation."

c# - IComparable 的接口(interface)约束

当我想将类型T约束为可比较时,我应该使用:whereT:IComparable或whereT:IComparable如果#2有意义,我无法理解。任何人都可以解释其中的区别是什么? 最佳答案 您可能需要两个约束,如:whereT:IComparable,IComparable这将使您的类型与IComparable的更多用户兼容接口(interface)。IComparable的通用版本,IComparable将有助于在T时避免装箱是一种值类型,允许接口(interface)方法的强类型实现。支持这两者可确保无论其他对象要求哪个接口(i