草庐IT

interface-design

全部标签

c# - WPF 数据绑定(bind)到接口(interface)而不是实际对象 - 可以转换吗?

假设我有一个这样的界面:publicinterfaceISomeInterface{...}我还有几个实现这个接口(interface)的类;publicclassSomeClass:ISomeInterface{...}现在我有一个WPF列表框,使用自定义DataTemplate列出ISomeInterface的项目。数据绑定(bind)引擎显然不会(我已经弄明白了)允许我绑定(bind)到接口(interface)属性——它看到该对象是一个SomeClass对象,并且只有在SomeClass碰巧有绑定(bind)时才会显示数据作为非接口(interface)属性可用的属性。我怎样才

c# - WPF 数据绑定(bind)到接口(interface)而不是实际对象 - 可以转换吗?

假设我有一个这样的界面:publicinterfaceISomeInterface{...}我还有几个实现这个接口(interface)的类;publicclassSomeClass:ISomeInterface{...}现在我有一个WPF列表框,使用自定义DataTemplate列出ISomeInterface的项目。数据绑定(bind)引擎显然不会(我已经弄明白了)允许我绑定(bind)到接口(interface)属性——它看到该对象是一个SomeClass对象,并且只有在SomeClass碰巧有绑定(bind)时才会显示数据作为非接口(interface)属性可用的属性。我怎样才

c# - 如何定义实现接口(interface)并约束类型参数的泛型类?

classSample:IDisposable//caseA{publicvoidDispose(){thrownewNotImplementedException();}}classSampleBwhereT:IDisposable//caseB{}classSampleC:IDisposable,T:IDisposable//caseC{publicvoidDispose(){thrownewNotImplementedException();}}案例C是案例A和案例B的组合。这可能吗?如何使案例C正确? 最佳答案 首先是实现的

c# - 如何定义实现接口(interface)并约束类型参数的泛型类?

classSample:IDisposable//caseA{publicvoidDispose(){thrownewNotImplementedException();}}classSampleBwhereT:IDisposable//caseB{}classSampleC:IDisposable,T:IDisposable//caseC{publicvoidDispose(){thrownewNotImplementedException();}}案例C是案例A和案例B的组合。这可能吗?如何使案例C正确? 最佳答案 首先是实现的

c# - 使用接口(interface)的隐式运算符

我有一个通用类,我正在尝试为其实现隐式类型转换。虽然它大部分都有效,但它不适用于界面转换。经过进一步调查,我发现存在编译器错误:适用的“用户定义的接口(interface)转换”。虽然我知道这在某些情况下应该强制执行,但我正在尝试做的事情看起来确实像是一个合法的案例。这是一个例子:publicclassFoowhereT:IBar{privatereadonlyTinstance;publicFoo(Tinstance){this.instance=instance;}publicTInstance{get{returninstance;}}publicstaticimplicitop

c# - 使用接口(interface)的隐式运算符

我有一个通用类,我正在尝试为其实现隐式类型转换。虽然它大部分都有效,但它不适用于界面转换。经过进一步调查,我发现存在编译器错误:适用的“用户定义的接口(interface)转换”。虽然我知道这在某些情况下应该强制执行,但我正在尝试做的事情看起来确实像是一个合法的案例。这是一个例子:publicclassFoowhereT:IBar{privatereadonlyTinstance;publicFoo(Tinstance){this.instance=instance;}publicTInstance{get{returninstance;}}publicstaticimplicitop

c# - 从现有类生成接口(interface)

我有一个类:ClassMyClass{publicMyClass{...}publicstringName{get{...}}publicintIdNumber{get{...}set{...}}publicvoidGenerateNme{...}}这只是一个示例类。我希望从中生成接口(interface)。比如,MyClass正在实现IMyClass接口(interface)。我希望输出是publicInterfaceIMyClass{stringName{get;}intIdNumber{get;set;}voidGenerateNumber();}和MyClass:IMyClas

c# - 从现有类生成接口(interface)

我有一个类:ClassMyClass{publicMyClass{...}publicstringName{get{...}}publicintIdNumber{get{...}set{...}}publicvoidGenerateNme{...}}这只是一个示例类。我希望从中生成接口(interface)。比如,MyClass正在实现IMyClass接口(interface)。我希望输出是publicInterfaceIMyClass{stringName{get;}intIdNumber{get;set;}voidGenerateNumber();}和MyClass:IMyClas

c# - 为什么在显式 getter-only 接口(interface)实现上使用私有(private) setter 是非法的?

我倾向于支持显式接口(interface)实现而不是隐式接口(interface)实现,因为我认为针对接口(interface)而不是针对实现进行编程通常更可取,而且在处理Web服务时,这通常是必需的。也就是说,我想知道为什么以下对于显式接口(interface)声明是非法的,而对于隐式接口(interface)声明是合法的:interfaceIConnection{stringConnectionString{get;}}classConnection1:IConnection{//privatesetisillegal,won'tcompilestringIConnection.C

c# - 为什么在显式 getter-only 接口(interface)实现上使用私有(private) setter 是非法的?

我倾向于支持显式接口(interface)实现而不是隐式接口(interface)实现,因为我认为针对接口(interface)而不是针对实现进行编程通常更可取,而且在处理Web服务时,这通常是必需的。也就是说,我想知道为什么以下对于显式接口(interface)声明是非法的,而对于隐式接口(interface)声明是合法的:interfaceIConnection{stringConnectionString{get;}}classConnection1:IConnection{//privatesetisillegal,won'tcompilestringIConnection.C