草庐IT

Inheritance

全部标签

c# - 在构造函数中调用基础构造函数和其他构造函数

标题可能听起来令人困惑。我想要的是在构造函数内部调用同一个类的构造函数和基类的构造函数。也许我第一次尝试解决这个问题可以解释我的问题:publicMyClass(MyClassobj):base(obj),this(){}但是这种表示法不起作用。有解决办法吗? 最佳答案 不,您不能这样做,原因如下:当构造函数调用其基类的构造函数时,后一个调用是相关构造函数的一部分。所以你不能调用同一个类的另一个构造函数和基类的构造函数,因为前一个调用已经包含对基类构造函数的调用-你不能两次初始化你的基类

c# - 为什么不能从扩展类型的基类中调用扩展方法?

我正在尝试通过覆盖索引器来添加在List>中查找元素的功能。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceConsoleApplication2{publicclassMyList:List>{publicintthis[stringkey]{get{returnbase.Single(item=>item.Key==key).Value;}}}}由于某种原因,编译器将抛出此错误:'System.Coll

c# - ASP.NET MVC 3 : DefaultModelBinder with inheritance/polymorphism

首先,对于大型文章(我首先尝试做一些研究)以及针对同一问题的技术混合(ASP.NETMVC3,Ninject和MvcContrib)感到抱歉。我正在使用ASP.NETMVC3开发一个项目来处理一些客户订单。简而言之:我有一些对象是继承自抽象类Order的对象,当对Controller发出POST请求时,我需要解析它们。如何解析正确的类型?我是否需要重写DefaultModelBinder类,或者有其他方法可以做到这一点?有人可以为我提供一些代码或其他链接来执行此操作吗?任何帮助将是巨大的!如果帖子令人困惑,我可以进行任何更改以使其清楚!因此,对于需要处理的订单,我具有以下继承树:pub

javascript - 在 JavaScript 中调用 "superclass"构造函数

我刚刚开始接触JavaScript,我对其面向对象的行为感到有点困惑。我只是想用x,y成员创建一个Point2D类,并用Point3D类扩展它x,y,z成员。我试图实现的行为类似于,让我们在C#中说:classPoint2D{intx,y;publicPoint2D(intx,inty){this.x=x;this.y=y;}}classPoint3D:Point2D{intz;publicPoint3D(intx,inty,intz):base(x,y){this.z=z;}}我读了很多东西,但我似乎并没有真正找到我要找的东西。这是我到目前为止所做的:functionPoint2D(

javascript - 在 TypeScript 中扩展基本类型,错误 : "_this is not defined..."

我正在尝试用TypeScript重写我的一些JavaScript代码。其中一些代码引用了我添加到字符串对象原型(prototype)的扩展。String.prototype.format=function(){varformatted=this;for(vari=0;i然而,使用类型脚本添加这个非常具有挑战性。我见过这样的例子,您声明一个基本接口(interface)的扩展,然后将一个函数分配给原型(prototype)以匹配该接口(interface)并提供您的功能。像这样...interfaceString{showString:()=>string;}String.prototy

javascript - 在基于原型(prototype)继承的语言中使用类

followinganswertothisquestion很好地解释了经典继承和原型(prototype)继承之间的区别。我很想了解这一点,因为我开始使用Java,但后来转向了Javascript。在他的回答中,他针对原型(prototype)继承指出,“所有关于类的业务都消失了。如果你想要一个对象,你只需编写一个对象。”但是有这么多文档和questions关于如何在Javascript中“编写类”。为什么要插入这种语言成为它不是的东西。我正在寻找在JS应用程序中使用类在这种原型(prototype)语言中更明智的情况的具体示例,以及笨拙地将方钉插入圆孔的好处。正如Aravind所说,

javascript - 为什么重置原型(prototype)不会从对象中删除属性?

我试图了解javascript原型(prototype)设计和可能的继承,但我确实遗漏了一些东西。让我们从简单的构造函数(函数Counter())开始,添加简单的属性和对象实例化:functionCounter(){this.a="first";};Counter.prototype.b="second";varcounter=newCounter();此时,counter.a返回“first”,counter.b返回“second”,counter.c当然是undefined这都是可以理解的。让我们向构造函数的原型(prototype)添加另一个属性:Counter.prototyp

javascript - Javascript instanceof 究竟是如何工作的?是慢风格吗?

对于“大型库”,instanceof的性能如何?它是否像这样沿着原型(prototype)链一个接一个向上移动?://..var_=john.constructor;while(true){if(_===Human){returntrue;}_=_.prototype.constructor}returnfalse;//..与在每个对象的属性中存储一个唯一的接口(interface)ID号相比,instanceof是否相对较差。 最佳答案 是的,类似的东西。这是来自specification的相关部分:11.8.6Theinstan

javascript - 在大项目中如何在闭包模板中没有继承?

我们使用闭包库和闭包编译器,我们想使用闭包模板。但是闭包模板没有继承。这对我们来说确实是个问题。据我了解,闭包模板之所以没有继承,是因为模板必须简单易读。但是在大​​项目中没有继承怎么活呢?例如,我们有一个模板文件button.soy,它生成带有公共(public)模板project.createButton和私有(private)模板的按钮:project.createOpenTag_、project.createCSSClasses_、project.createAttributes_、project.createContent_、project.createCloseTag_。我

javascript - 有没有有效的方法在 javascript 中使用 `__proto__` 或 `setPrototypeOf()`?

MDN有一个关于修改代码原型(prototype)的巨大警告:Changingthe[[Prototype]]ofanobjectis,bythenatureofhowmodernJavaScriptenginesoptimizepropertyaccesses,averyslowoperation,ineverybrowserandJavaScriptengine.Theeffectsonperformanceofalteringinheritancearesubtleandfar-flung,andarenotlimitedtosimplythetimespentintheObje