草庐IT

继承权

全部标签

c# - 我们可以继承单例类吗?

我们可以继承单例类吗? 最佳答案 这取决于实现。单例通常具有私有(private)构造函数并且可能标记为sealed,如果是这样则不能。如果它至少受到保护,你可以。如果你只是从单例类继承,结果将不是单例,所以你应该遵循这个模式,让它也是单例。 关于c#-我们可以继承单例类吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3564758/

C# - 如何使方法仅对继承方法基类的类可见

我有一个标记为抽象的基类。是否可以使该基类中的方法仅对继承该基类的其他类可见?假设我有Class1,它是我的基类,被标记为抽象类。Class2继承了Class1并且可以调用它的所有公共(public)方法。我希望Class3创建Class2的实例,但不能调用Class1的某些方法。我尝试将这些方法本身标记为抽象方法,但当Class2尝试使用它们时出现错误。错误是:“...无法声明正文,因为它被标记为抽象” 最佳答案 为什么不声明方法protected?publicabstractclassClass1{protectedabstra

C#:微软为什么不让 ReadOnlyCollection<T> 继承自 ReadOnlyCollectionBase?

简单的说,微软定义了一个ReadOnlyCollectionBase,但没有将其用作ReadOnlyCollection的基类当听起来很明显应该是这样的时候。我是不是漏掉了什么?我的意思是,是否有充分的理由不将此类作为基类? 最佳答案 可能是因为它不是通用的并且实现了ICollection而ReadOnlyCollection是通用的并实现了ICollection.注意ICollection不执行ICollection.在那topic:ICollectionseemslikeICollection,butit’sactuallyav

c# - 单元测试继承

我有一个关于单元测试的问题。假设我有几个从父类继承行为的类。我不想测试所有子类的这种行为。相反,我会测试父类。但是,我还应该提供一个测试来证明该行为在子类中可用。你认为像Assert.IsTrue(newChildClass()isParentClass)这样的东西有意义吗? 最佳答案 让您的测试继承自基类测试,[非常]大致像这样。publicclassMyBaseClass{publicvirtualvoidDoStuff(){}publicvirtualvoidDoOtherStuff(){}}publicclassMySubC

c# - 私有(private)类级变量是否继承?

只是想知道私有(private)类级变量是否继承?在C#中 最佳答案 是的,但它们是不可访问的,所以看它你可以诚实地说它们不是继承的。但是,是的,他们确实是 关于c#-私有(private)类级变量是否继承?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3373625/

c# - 除非继承,否则使 C# 不实例化类的最简单方法?

使C#不实例化类除非继承的最简单方法是什么?听起来很奇怪,但我不想解释原因。我有一个基类和两个继承它的类。我只想使用派生类而不是基类。派生类没有任何额外的功能。不允许我编写newBaseClass();的最简单方法是什么?所以我不会不小心使用它?我确实有对基类而不是派生类进行操作的函数。 最佳答案 使该类成为抽象基类。abstractclassPerson{}classProgrammer:Person{}varperson=newPerson();//compiletimeerrorvarprogrammer=newProgram

c# - 我如何使用 NUnit 创建一个通用的 BaseTest,我可以从它继承并从 base 运行测试?

所以基本上我有一个域对象和一个可以对该对象执行CRUD操作的通用存储库。publicinterfaceIBaseRepositorywhereT:BaseEntity{voidAdd(Tentity);voidRemove(Tentity);TById(intid);IEnumerableAll();}所以我有这个接口(interface)的多个实现,每个域对象一个。我想写一些集成测试(使用nunit),为此我想我会做一个BaseRepositoryTest-像这样:publicabstractclassBaseRepositoryTestswhereT:BaseEntity{publ

c# - DebuggerStepThrough 是否可以继承到自动生成的 IEnumerable 实现中?

DebuggerStepThrough属性允许您跳过进入某些方法/类/属性的步骤。在DebuggerStepThroughbeingignored澄清了c#编译器不会将此属性继承到编译器生成的IEnumerable执行。这种失败的一个简单例子是:staticvoidMain(string[]args){vara=SkipMe().ToList();}[System.Diagnostics.DebuggerStepThrough]staticIEnumerableSkipMe(){//commentoutlinebelowandthethrowwillbesteppedover.yiel

c# - 为什么值类型继承自引用类型?

这个问题在这里已经有了答案:HowdoValueTypesderivefromObject(ReferenceType)andstillbeValueTypes?(6个答案)System.ValueTypeUnderstanding(7个答案)关闭7年前。我有两个问题:我们知道所有类型都派生自Object,它是一个引用类型。我的问题是为什么int-这是一个value类型-继承自引用类型Object?这可能吗?如果int派生自Object,为什么我们在将int传递给需要的函数时需要装箱对象作为参数?通常,当您需要将派生类型的对象作为参数传递给期望基类型对象的函数时,使用引用,您不需要做任

c# - 从抽象类引用继承的 EntitySet 的 dapper PropInfo Setter 为 null

我正在尝试用一些简洁的查询替换令人讨厌的LINQ2SQL命中以提高性能。这样做时,我必须将一堆不同的对象编织在一起,以创建保存ASN信息所需的所有信息所需的大对象。我目前遇到的问题是抽象类Orders,该类由两个单独的类AutionOrder和MerchantOrder使用鉴别器属性实现。由于我无法使用dapper创建抽象类对象,因此我改用其中一个公共(public)类。但是,当它构建对象时,它在GetSettableProps内部失败,它找到了正确的DeclaringType但是GetProperty方法在它返回null时正在寻找internal或EntitySet的属性。我尝试使用