【在继承基类时,有没有理由为什么C#默认为new而不是覆盖?】教程文章相关的互联网学习教程文章

c# – ASP.NET WebApi响应模型中的订购属性从基类继承href和id【代码】

我有一个带有几个响应模型的ASP.NET Web Api 2项目.在尝试创建较小的有效负载时,我向用户提供了将实体折叠为id和href链接的选项,我想自动生成.我希望我的所有主要资源响应模型都从仅具有href和id的基本响应模型继承.如果我有一个资源Foo,这看起来像这样:public class ResourceResponseModel {public string Href { get; private set; }public string Id { get; private set; }protected ResourceResponseModel(string id){Id = id...

c# – 继承自AuthorizeAttribute的属性不起作用【代码】

我目前正在尝试基于用户角色在新的ASP MVC 5应用程序中实现安全性.目标是防止用户访问某些控制器或控制器方法,如果他们没有某个角色(或更高).基于我到目前为止所读到的问题,我创建了一个继承AuthorizeAttribute的属性,它看起来像这样(MyAppRole是枚举,顺便说一句):[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)] public sealed class AuthorizeRoleOrSuperiorAtt...

c# – 如何确定哪个继承类正在使用抽象类的方法【代码】

在我的控制台应用程序中有一个抽象的Factory类“Listener”,它包含用于侦听和接受连接以及生成客户端类的代码.此类由另外两个类(WorldListener和MasterListener)继承,这些类包含更多特定于协议的覆盖和函数. 我还有一个辅助类(ConsoleWrapper),它封装和扩展System.Console,包含用于写入控制台信息的方法,用于解释WorldListener和MasterListener实例的内容. 我需要一种方法来在抽象的ListenerClass中确定哪个Inheriting类正在调用它...

c# – 在不触及课程的情况下添加属性? (不是继承)

我的项目中有一个要求是在某个类中添加另一个属性.现在我想避免更改类,因为我认为它不应该知道他有这个属性(这个属性只在这个项目的上下文中有意义). 我想要实现这个目标的方式是(请批评这个,因为我想知道是否有更简单的方法可以做到这一点) >添加一个新的单例类,它在我的类的对象和我想要添加的属性的类型之间有一个映射>在此类中添加一个扩展方法(扩展属性?)来访问映射并获取属性. 有更简单的替代方案吗?这只是不必要的复杂性吗...

c# – 我可以阻止一个类被非抽象对象继承吗?【代码】

考虑以下类:public abstract class Planet {protected abstract Material Composition { get; } }public abstract class TerrestrialPlanet : Planet {protected override Material Composition{get{return Type.Rocky;}} } public abstract class GasGiant : Planet {protected override Material Composition{get{return Type.Gaseous;}} }有没有办法阻止非抽象对象直接从类Planet继承? 换句话说,我们可以强制执行任何直接从Pl...

C#:用于强制继承接口的项列表的接口【代码】

我有以下界面:IMyInterface {IList<IMyInterface> MyList { get; set; }int X { get; set; }int Y { get; set; } }我想强制实现此接口的类具有列表“MyList”,其中包含也实现IMyInterface的其他项的列表.我该怎么做呢? 如果我尝试以下操作,我会收到错误:public class MyClass: IMyInterface {public int X { get; set; }public int Y { get; set; }public List<MyClass> MyList { get; set; } }解决方法:如果您希望MyList的项目...

c# – ASP.NET核心MVC属性路由继承【代码】

我以前总是在我的MVC应用程序中使用这种方法[Route("admin")] public class AdminController : Controller {}[Route("products")] public class ProductsAdminController :AdminController { [Route("list")]public IActionResult Index(){...} }用于索引操作的Url.RouteUrl()返回/ admin / products / list / 现在在.NET Core中它忽略了基类路由属性,结果只是/ products / list /这是.NET Core的新功能吗?是否有任何设置,以便系统...

c# – 当继承类型具有不同的类型参数时,声明通用基类型的变量【代码】

我有一个类层次结构,它是这样的:public abstract class BaseDecision {// <implementation> }public class CCDecision : BaseDecision {// <implementation> }public class UCDecision : BaseDecision {// <implementation> }public abstract class BaseInfo<TDecision> where TDecision:BaseDecision, new() {public TDecision proposedDecision;public TDecision finalDecision;// <implementation> }public class CCInfo :...

c# – 防止父级ContextMenu的子级继承【代码】

根据这段代码:<StackPanel><StackPanel.ContextMenu><ContextMenu><MenuItem Header="menuitem1"/><MenuItem Header="menuitem2"/></ContextMenu></StackPanel.ContextMenu><Button Width="100" Height="100"/><Button Width="100" Height="100"/> </StackPanel>如果右键单击按钮,则会出现ContextMenu,子项将继承其父项的ContextMenu.我的问题是如何防止此功能? 编辑:如果可能,我需要在xaml中使用某种方法.解决方法:我找到了这个...

c# – 隐藏在继承类中的事件不起作用【代码】

我试图隐藏继承类中的事件,但不是通过EditorBrowserable属性.我有一个DelayedFileSystemWatcher,它继承自FileSystemWatcher,我需要隐藏Changed,Created,Deleted和Renamed事件并将它们设为私有.我试过这个,但它不起作用:/// <summary>/// Do not use/// </summary>private new event FileSystemEventHandler Changed;IntelliSense中未显示XML注释(显示原始信息).但是,如果我将访问修饰符更改为public,则XML注释将显示在IntelliSens...

c# – 通用构造函数和继承【代码】

我有一个带有类约束的泛型类.public class MyContainer<T> where T : MyBaseRowMyBaseRow是一个抽象类,我也希望包含一些MyContainer的成员.public abstract class MyBaseRow {public MyContainer<MyBaseRow> ParentContainer;public MyBaseRow(MyContainer<MyBaseRow> parentContainer){ParentContainer = parentContainer;} }我遇到了从MyBaseRow继承的类的构造函数的问题,例如.public class MyInheritedRowA : MyBaseRow {public...

C#图解教程学习笔记——类和继承【图】

一、屏蔽基类的成员所有类都派生自object类。虽然类只能直接继承一个基类,但继承的层次没有限制。虽然派生类不能删除它继承的任何成员,但可以用与基类同名的成员来屏蔽(mask)基类成员。1. 要屏蔽一个继承的数据成员,需要声明一个新的同类型成员,并使用相同名称。2. 通过在派生类中声明新的带有相同签名的函数成员,可以隐藏或屏蔽继承的函数成员。3. 要让编译器知道你在故意屏蔽继承的成员,使用new修饰符。否则,程序可以成功...

C#:simple多继承/ mixin替换?【代码】

我有一个来自外部库的类,我需要扩展到antoher类.此外,扩展应保持可重用,因为我需要它们也可以在其他地方实现. 由于C#中既不支持mixins也不支持多重继承,那么解决这个问题的常用方法是什么?namespace ExtLib {public class Properties{public virtual int fieldN { get; set; }} }namespace MyLib {public class Extensions{public virtual int fieldM { get; set; }} }namespace MyProject {public class MyModel{// needs to hav...

c# – 基于条件的继承构造函数选择【代码】

我有一组继承的类.根据初始化变量类型,我需要调用相应的构造函数.我想避免在这里使用switch分支,以防万一武器类型会越来越多.也许有通用的方法或一些模式来实现这一目标?武器初始化:switch (_weaponsData.WeaponType) {case WeaponType.ProjectileWeapon:weapon = new ProjectileWeapon(_weaponsData);break;case WeaponType.Laser:weapon = new LaserWeapon(_weaponsData);break;case WeaponType.snowBall:weapon = new Snowba...

c# – 继承指定的泛型类型【代码】

我不认为我想要的是可能的,但我希望有人可以验证这一点,也许可以解释为什么它是不可能的. 我们有Bar< T>的继承,我们无法触及Bar< T>的源代码.abstract class Foo<T> : Bar<T>我们提供Foo< T>由第三方实施,我们也想要规定任何类继承自Foo< T>是T的指定类型.当然,这可以由第三方手动完成class Fizz : Foo<Fizz>但是,我发现重复的Fizz既麻烦又丑陋.Foo< T>是否可能?自动使用Fizz作为T的指定类型?换句话说,是否可以让Foo< T>.沿着这些...