草庐IT

multiple-interface-implem

全部标签

c# - 为什么在接口(interface)列表中的泛型内部使用私有(private)嵌套类型不是 "inconsistent accessibility"?

如果标题不是完全不言自明的,下面是令我困惑的代码:publicinterfaceIFoo{}publicclassMyClass:IFoo{privateclassNestedInMyClass{}}我很惊讶这个编译没有错误。感觉我在暴露一个private类型。这不应该是违法的吗?也许您的答案只是“没有反对的规则,那为什么不可以呢?”也许同样令人惊讶的是MyClass.NestedInMyClass甚至在“范围内”。如果我删除MyClass.资格,它不会编译。(如果我将IFoo更改为通用类,它应该成为MyClass的基类,这是非法的,因为基类型必须是至少与类型本身一样易于访问。)我用V

c# - 为什么在接口(interface)列表中的泛型内部使用私有(private)嵌套类型不是 "inconsistent accessibility"?

如果标题不是完全不言自明的,下面是令我困惑的代码:publicinterfaceIFoo{}publicclassMyClass:IFoo{privateclassNestedInMyClass{}}我很惊讶这个编译没有错误。感觉我在暴露一个private类型。这不应该是违法的吗?也许您的答案只是“没有反对的规则,那为什么不可以呢?”也许同样令人惊讶的是MyClass.NestedInMyClass甚至在“范围内”。如果我删除MyClass.资格,它不会编译。(如果我将IFoo更改为通用类,它应该成为MyClass的基类,这是非法的,因为基类型必须是至少与类型本身一样易于访问。)我用V

c# - 自定义 ASP.NET Identity 2.0 UserStore - 是否需要实现所有接口(interface)?

我创建了一个自定义IUserStore为我的申请。我已经实现了我需要的接口(interface),IUserStore,IUserRoleStore,IUserLockoutStore,IUserPasswordStore但是当我打电话的时候varresult=awaitSignInManager.PasswordSignInAsync(model.UserName,model.Password,model.RememberMe,shouldLockout:false);我得到一个异常(exception)说StoredoesnotimplementIUserTwoFactorStor

c# - 自定义 ASP.NET Identity 2.0 UserStore - 是否需要实现所有接口(interface)?

我创建了一个自定义IUserStore为我的申请。我已经实现了我需要的接口(interface),IUserStore,IUserRoleStore,IUserLockoutStore,IUserPasswordStore但是当我打电话的时候varresult=awaitSignInManager.PasswordSignInAsync(model.UserName,model.Password,model.RememberMe,shouldLockout:false);我得到一个异常(exception)说StoredoesnotimplementIUserTwoFactorStor

c# - 向接口(interface)添加属性会阻止在派生类型中创建私有(private)/ protected "set"吗?

编辑:事实证明我遗漏了一些明显的东西,但我将保留这个问题以防其他人犯同样明显的错误。感谢那些指出它的人请参阅底部的解释。是否可以对覆盖接口(interface)属性的属性进行非公共(public)设置?也许我有一个愚蠢的时刻,但在我看来,在接口(interface)中定义一个属性隐含地要求没有派生类可以为所述属性提供任何非公共(public)集。例子:interfaceIField{boolIsValid{get;}}...并且由于接口(interface)属性可能没有可访问性修饰符意味着:classField:IField{publicoverrideboolIsValid{get;

c# - 向接口(interface)添加属性会阻止在派生类型中创建私有(private)/ protected "set"吗?

编辑:事实证明我遗漏了一些明显的东西,但我将保留这个问题以防其他人犯同样明显的错误。感谢那些指出它的人请参阅底部的解释。是否可以对覆盖接口(interface)属性的属性进行非公共(public)设置?也许我有一个愚蠢的时刻,但在我看来,在接口(interface)中定义一个属性隐含地要求没有派生类可以为所述属性提供任何非公共(public)集。例子:interfaceIField{boolIsValid{get;}}...并且由于接口(interface)属性可能没有可访问性修饰符意味着:classField:IField{publicoverrideboolIsValid{get;

c# - 使用 ninject 将多个实现绑定(bind)到同一个接口(interface)

为什么我无法在Ninect中执行以下操作?Kernel.Bind.To();Kernel.Bind.To();Kernel.Bind.To();Kernel.Bind.To();4个实现中的每一个都有一个不同的构造函数,需要不同的类型。当我尝试这样做时,Ninject抛出一个异常告诉我我不能多次绑定(bind)到同一个接口(interface)。在一个名为Presentable的类中所有演示者类都继承自它,我正在尝试做Kernel.Get(newConstructorArgument("view",this))所以分配IPresentablePresenter在页面/View中,页面/

c# - 使用 ninject 将多个实现绑定(bind)到同一个接口(interface)

为什么我无法在Ninect中执行以下操作?Kernel.Bind.To();Kernel.Bind.To();Kernel.Bind.To();Kernel.Bind.To();4个实现中的每一个都有一个不同的构造函数,需要不同的类型。当我尝试这样做时,Ninject抛出一个异常告诉我我不能多次绑定(bind)到同一个接口(interface)。在一个名为Presentable的类中所有演示者类都继承自它,我正在尝试做Kernel.Get(newConstructorArgument("view",this))所以分配IPresentablePresenter在页面/View中,页面/

c# - 可转位接口(interface)

如果我只想能够索引到一个类型的实例,应该使用什么C#接口(interface)?我不需要(或不想要)添加/删除/编辑元素的能力。枚举没问题。这是否需要自定义IIndexable类型?在这种情况下,IList有点矫枉过正,因为它强制执行我不想拥有的成员。 最佳答案 从.Net4.5开始,(可以说)正确的方法现在是使用IReadOnlyList,源自IReadOnlyCollection,源自IEnumerableIReadOnlyList给你索引器IReadOnlyCollection为您提供集合Count属性。IEnumerable

c# - 可转位接口(interface)

如果我只想能够索引到一个类型的实例,应该使用什么C#接口(interface)?我不需要(或不想要)添加/删除/编辑元素的能力。枚举没问题。这是否需要自定义IIndexable类型?在这种情况下,IList有点矫枉过正,因为它强制执行我不想拥有的成员。 最佳答案 从.Net4.5开始,(可以说)正确的方法现在是使用IReadOnlyList,源自IReadOnlyCollection,源自IEnumerableIReadOnlyList给你索引器IReadOnlyCollection为您提供集合Count属性。IEnumerable