草庐IT

UI_USER_INTERFACE_IDIOM

全部标签

c# - 委托(delegate)不只是简写接口(interface)吗?

假设我们有:interfaceFoo{boolFunc(intx);}classBar:Foo{boolFunc(intx){return(x>0);}}classBaz:Foo{boolFunc(intx){return(x现在我们可以将Bar和Baz作为Foos来回折腾,并调用它们的Func方法。委托(delegate)对此进行了一些简化:delegateboolFoo(intx);boolBar(intx){return(x0);}现在我们可以将Bar和Baz作为Foo委托(delegate)来回折腾了。除了缩短代码之外,委托(delegate)的真正好处是什么?

C# - 系统地添加接口(interface)是一种好习惯吗?

在我从事的项目中,我注意到每个实体类都有一个接口(interface)。似乎最初的动机是只向其他项目/解决方案公开接口(interface)。我发现这完全没用,而且我不明白为每个类创建接口(interface)有什么意义。顺便说一句,这些类没有任何方法,只有属性,它们没有实现相同的接口(interface)。我错了吗?或者这是一个好的做法?谢谢 最佳答案 我倾向于为几乎每个类创建一个接口(interface),主要是因为单元测试-如果您使用依赖注入(inject)并希望对依赖于所讨论类的类进行单元测试,那么标准方法是模拟有问题的类(

c# - 如何隐藏接口(interface)的某些成员

我想创建一个实现ICollection的自定义集合。但我不想公开ICollection的一些成员,例如Clear方法。如何实现? 最佳答案 您可以显式实现接口(interface)并隐藏实现:publicclassUrClass:ICollection{voidICollection.Clear(){...}}用户无法调用urClassInstance.Clear()直接,但他们可以调用((ICollection)urClassInstance).Clear()间接地像这样。 关于c#-

c# - 事件目录 : Retrieve User information

我有一个Web应用程序正在使用我们的ActiveDirectory针对Windows身份验证运行。我有一个新要求,需要从ActiveDirectory条目中提取一些个人信息。访问此信息的最简单方法是什么? 最佳答案 直接通过DirectoryEntry访问用户似乎是最直接的方法。以下是我从我的第一个AD相关项目中学到的一些与AD相关的花絮:在URI中,以小写形式写入LDAP。否则你会得到一个神秘的错误。我在这个令人沮丧的问题上花了一天多的时间......要清除单值属性,请将其设置为空字符串,而不是null。Null会导致异常。要清除

c# - 调用线程必须是 STA,因为在 WPF 中很多 UI 组件都需要这个错误。在 form.show() 上

首先,我在网站上阅读了几个类似问题的答案,但老实说,我觉得它们有点令人困惑(由于我缺乏经验而不是答案!)。我正在使用FileSystemWatcher()类来监视正在创建/更改的文件的文件夹。事件发生后,我想在项目中加载另一个表单。当新表单上的构造函数试图执行时,我没有加载表单,而是收到错误。我只使用一个线程-我没有尝试在不同的线程下加载表单。我的代码如下//MainWindowpublicstaticvoidFolderWatcher(){FileSystemWatcherfsWatcher=newFileSystemWatcher();fsWatcher.Path="C:\\dum

c# - 编程到接口(interface)。如何决定在哪里需要它?

我知道针对接口(interface)编程有助于松散耦合。但是,是否有一个指南可以解释什么时候最有效?例如,我有一个简单的网络应用程序,可以收集有关员工的数据、他们的培训计划、费用并计算他们当年的费用等。这是一个相当简单的应用程序,我当然可以使用一个界面,但想知道是否有会有什么用。我会为了使用它而使用它。人们总是会争辩说,随着应用程序变得越来越复杂并且我传递对象,传递类型(接口(interface))比传递实现更有意义。那么,我应该等待应用程序变得复杂,还是立即使用它?我想知道最好的做法可能是“这家伙做事过度了”。 最佳答案 对接口(

c# - 在线程中访问 UI

当我尝试更改UI属性(特别是启用)时,我的线程抛出System.Threading.ThreadAbortException如何在线程中访问UI。 最佳答案 您可以使用BackgroundWorker,然后像这样更改UI:control.Invoke((MethodInvoker)delegate{control.Enabled=true;}); 关于c#-在线程中访问UI,我们在StackOverflow上找到一个类似的问题: https://stackov

没有静态类型的 C# 接口(interface)

有没有办法按照这些思路做一些事情?interfaceIface{[anytype]Prop1{get;}[anytype]Prop2{get;}}classClass1:Iface{publicstringProp1{get;}publicintProp2{get;}}classClass2:Iface{publicintProp1{get;}publicbool?Prop2{get;}}我不关心属性的类型,我只需要属性可用。这不一定要用接口(interface)来实现,只是以它为例。 最佳答案 使界面通用:interfaceIfa

c# - 序列化接口(interface)

我正在尝试运行与此类似的代码:usingSystem;usingSystem.Collections.Generic;usingSystem.IO;usingSystem.Xml.Serialization;namespaceConsoleApplication1{[Serializable][XmlInclude(typeof(List))]publicclassClass1{privateIListmyArray;publicIListMyArray{get{returnmyArray;}set{myArray=value;}}}publicclassClass2{privatei

C# 和接口(interface) - 显式与隐式

在C#中,如果一个类具有接口(interface)的所有正确方法/签名,但没有显式实现它,例如:classfoo:IDoo{}类仍然可以转换为该接口(interface)吗? 最佳答案 鸭子类型(ducktyping)您所指的是“duck-typing”(以成语“长得像鸭子类型(ducktyping),叫起来像鸭子类型(ducktyping),那一定是鸭子类型(ducktyping)”命名)。一旦您实现了相关成员(正如您所描述的),使用鸭子类型(ducktyping)接口(interface)实现是隐式的,但是.NET目前对此没有任