草庐IT

Inheritance

全部标签

c# - 在发送到 Base 构造函数之前修改参数值

标题可能有点含糊,但我想不出更好的表达方式。我知道我不能在调用基础构造函数之前调用派生构造函数,但是我可以在将参数值传递给基础之前以某种方式修改/创建参数值吗?例如,publicenumInputType{Number=1,String=2,Date=3}publicclassBaseClass{publicBaseClass(InputTypet){//Logic}}publicclassDerivedClass:BaseClass{publicDerivedClass(inti):base(value)//CanIdosomethingtoinferwhatvalueshouldb

c# - 方法覆盖和可选参数

有人愿意解释这段代码如何产生以下输出吗?usingSystem;namespaceConsoleApplication1{classTest{publicoverridestringToString(){return"ToStringoverride";}publicstringToString(stringoptional=""){returnString.Format("ToStringwithoptionalparameter{0}",optional);}}classTest2{publicnewstringToString(){return"ToStringnew";}pub

c# - 方法覆盖和可选参数

有人愿意解释这段代码如何产生以下输出吗?usingSystem;namespaceConsoleApplication1{classTest{publicoverridestringToString(){return"ToStringoverride";}publicstringToString(stringoptional=""){returnString.Format("ToStringwithoptionalparameter{0}",optional);}}classTest2{publicnewstringToString(){return"ToStringnew";}pub

c# - 设计建议——何时有效使用 "virtual"和 "sealed"

关闭。这个问题是opinion-based.它目前不接受答案。关闭3年前。锁定。这个问题及其答案是locked因为这个问题离题但具有历史意义。它目前不接受新的答案或互动。我正在编写一个C#网络库(主要作为学习练习,如果有人实际上最终使用它对我来说并不过分重要,因为我确信解决方案已经存在)。到目前为止,我对我的结构相当满意......我有几层可用的客户端/服务器,它们可以通过套接字以原始字节进行通信,或者通过序列化消息对象稍微复杂一些。我遇到的问题(问题?)是什么时候我应该声明方法、属性或事件sealed、virtual或不带限定符。我知道所有这些的作用-sealed防止类的继承,或进一

c# - 设计建议——何时有效使用 "virtual"和 "sealed"

关闭。这个问题是opinion-based.它目前不接受答案。关闭3年前。锁定。这个问题及其答案是locked因为这个问题离题但具有历史意义。它目前不接受新的答案或互动。我正在编写一个C#网络库(主要作为学习练习,如果有人实际上最终使用它对我来说并不过分重要,因为我确信解决方案已经存在)。到目前为止,我对我的结构相当满意......我有几层可用的客户端/服务器,它们可以通过套接字以原始字节进行通信,或者通过序列化消息对象稍微复杂一些。我遇到的问题(问题?)是什么时候我应该声明方法、属性或事件sealed、virtual或不带限定符。我知道所有这些的作用-sealed防止类的继承,或进一

c# - 防止覆盖 C# 中的单个方法

我知道我可以使用密封来防止其他类继承某个类,但是是否可以允许继承但防止重写某些虚拟方法? 最佳答案 只能覆盖虚方法。只需省略virtual,您的方法将不可覆盖。 关于c#-防止覆盖C#中的单个方法,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5274639/

c# - 防止覆盖 C# 中的单个方法

我知道我可以使用密封来防止其他类继承某个类,但是是否可以允许继承但防止重写某些虚拟方法? 最佳答案 只能覆盖虚方法。只需省略virtual,您的方法将不可覆盖。 关于c#-防止覆盖C#中的单个方法,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5274639/

c# - 如何在 C# 中覆盖 List<T> 的 Add 方法?

我目前正在寻找自己的收藏,这就像一个普通的list,只是它只能容纳10件元素。如果在列表中已经有10个项目时添加了一个项目,那么第一个项目将在附加新项目之前被删除。我想做的是创建一个扩展System.Collections.Generic.List的类,然后修改Add(Titem)方法来包含在必要时删除第一项的功能。 最佳答案 你也可以通过实现add方法publicnewvoidAdd(...)在您的派生类中隐藏现有添加并引入您的功能。编辑:粗略的大纲...classMyHappyList:List{publicnewvoidAdd

c# - 如何在 C# 中覆盖 List<T> 的 Add 方法?

我目前正在寻找自己的收藏,这就像一个普通的list,只是它只能容纳10件元素。如果在列表中已经有10个项目时添加了一个项目,那么第一个项目将在附加新项目之前被删除。我想做的是创建一个扩展System.Collections.Generic.List的类,然后修改Add(Titem)方法来包含在必要时删除第一项的功能。 最佳答案 你也可以通过实现add方法publicnewvoidAdd(...)在您的派生类中隐藏现有添加并引入您的功能。编辑:粗略的大纲...classMyHappyList:List{publicnewvoidAdd

c# - C#有私有(private)继承和保护继承的概念吗?

C#是否有私有(private)/保护继承的概念,如果没有,为什么?C++classFoo:privateBar{public:...};C#publicabstractNServletclass:privateSystem.Web.UI.Page{//error"typeexpected"}我正在.aspx页面中实现“类似servlet”的概念,我不希望具体类能够查看System.Web.UI.Page基础的内部结构。 最佳答案 C#只允许公共(public)继承。C++允许所有三种类型。公共(public)继承暗示了一种“IS-