草庐IT

继承权

全部标签

c# - 获取类型的继承树

PossibleDuplicate:TogetparentclassusingReflectiononC#我试图找到一种在C#中使用反射获取特定类型的继承树的简单方法。假设我有以下类(class);publicclassA{}publicclassB:A{}publicclassC:B{}我如何使用类型“C”的反射来确定它的父类(superclass)是“B”,而后者又来自“A”等等?我知道我可以使用“IsSubclassOf()”,但假设我不知道我正在寻找的父类(superclass)。 最佳答案 要获取类型的直接父代,您可以使用

c# - 是否有理由在界面中隐藏继承的成员?

我知道从另一个类继承的类可以使用new关键字隐藏属性。但是,这隐藏了该属性的特定实现,因此我可以了解如何使用它。在实现其他接口(interface)的接口(interface)中隐藏成员是否有任何实际原因?例如考虑下面的例子。IChildInterface实现了IParentInterface,并隐藏了PropertyA。interfaceIParentInterface{stringName{get;set;}intPropertyA{get;set;}intPropertyB{get;set;}}interfaceIChildInterface:IParentInterface{i

c# - 如何让MVC中的某个View不继承_Layout.cshtml?

我正在使用ASP.NETMVC5,razor语法。我需要一个特定的“创建”View来不继承_Layout.cshtml共享View。基本上,在这个特定的View中,我不需要任何_Layout.cshtml功能,例如导航菜单、页脚等。 最佳答案 使用。@{Layout=null}在您不想继承_layout.cshtml的任何.cshtml文件中 关于c#-如何让MVC中的某个View不继承_Layout.cshtml?,我们在StackOverflow上找到一个类似的问题:

c# - System.Threading.Thread继承

是否可以继承Thread类并重写Start方法? 最佳答案 关于为什么有人要这样做:许多语言(例如Java)和/或线程API(例如Qt)允许开发人员通过从“线程”基类继承,然后重载一个方法来实现线程实现线程例程。在Qt中广泛使用了这个模型后,我实际上发现它非常方便——不是让线程以某些函数或方法为目标,这通常会导致奇怪和/或令人费解的代码,而是将整个线程包含在一个对象中。这是使用QtAPI的示例代码:classMyThread:publicQThread{Q_OBJECTprotected:voidrun();};voidMyThre

c# - 向继承类添加数据注释

假设我有以下类(class):publicclassContactUsFormModel:AddressModel{[DisplayName("Title")][StringLength(5)]publicstringTitle{get;set;}[DisplayName("Firstname(required)")][Required(ErrorMessage="Pleaseenteryourfirstname")][StringLength(50,ErrorMessage="Pleaselimityourfirstnameto{1}characters.")]publicstrin

c# - 反射(reflect)接口(interface)的所有属性,包括继承的属性?

我有一个表示接口(interface)的System.Type实例,我想获取该接口(interface)上所有属性的列表——包括从基接口(interface)继承的那些。我基本上希望从接口(interface)获得与类相同的行为。例如,给定这个层次结构:publicinterfaceIBase{publicstringBaseProperty{get;}}publicinterfaceISub:IBase{publicstringSubProperty{get;}}publicclassBase:IBase{publicstringBaseProperty{get{return"Bas

c# - 为什么泛型 IList<> 不继承非泛型 IList

IList不继承IList其中IEnumerable继承IEnumerable.如果out修饰符是大多数执行IList的唯一原因(例如Collection,List)实现IList界面。所以任何人都可以说OK,如果该陈述对于IList的所有实现都是正确的然后直接投给IList必要时。但问题是虽然IList不继承IList所以不能保证每个IList对象是IList.此外使用IList显然不是解决方案,因为没有out不能将修饰泛型分配给较少继承的类;并且创建新的List实例不是这里的解决方案,因为有人可能想要实际引用IList作为IList指针;并使用List代替IList实际上是一种糟糕

c# - 值类型继承自 System.Object...为什么?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicates:Iseverythingin.NETanobject?HowdoValueTypesderivefromObject(ReferenceType)andstillbeValueTypes?你好,我就是不明白。System.Object是(我认为)引用类型,但.NET中的所有数据类型都继承自它。值类型也是如此。我不明白-值类型在堆栈上有它的值,但它是从Object继承的?希望任何人都可以帮助我理解

c# - 如何使 [DebuggerDisplay] 尊重继承的类或至少使用集合?

我有一个继承自List的类.它在所有方面都运行良好并且符合预期,除了一个:当我添加[DebuggerDisplay]时属性。即使查看List也有其作为[DebuggerDisplay("Count={Count}")],如果我将其复制并粘贴到我的上,我将无法直接查看我拥有的所有MagicBeans,而无需在调试时钻入base->private成员。我如何才能两全其美?IE:值列中的自定义值,VisualStudio没有对我隐藏我的魔bean? 最佳答案 您可以使用DebuggerTypeProxy获得您需要的效果属性。您需要创建一个

c# - 在继承类中重载方法

我已经开始明白我不明白发生了什么。在C#中有以下行为:publicclassBase{publicvoidMethod(Da){Console.WriteLine("publicvoidMethod(Da)");}}publicclassDerived:Base{publicvoidMethod(Ba){Console.WriteLine("publicvoidMethod(Ba)");}}publicclassB{}publicclassD:B{}classProgram{staticvoidMain(string[]args){Derivedderived=newDerived()