我知道这似乎是一个重复的问题,但我已经通过所有现有的答案无济于事.
我一直在尝试让命令提示符确认C#的命令行编译器,因为它对我正在使用的编译器生成器来说是必不可少的.我正在全新安装Windows 7 SP1 64位,使用Visual Studio 2012对dreamspark的称赞.
我已经尝试将"Microsoft.NET\Framework\v4.0.30319"和"Microsoft.NET\Framework64\v4.0.30319"添加到路径环境变量中,尝试了vsvars批处理文件,但仍然没有运气.命令提示符只是声明"csc不被识别为内部或外部命令".
任何帮助,将不胜感激!
因此,每次提及__proto__时,通常都会提到Brendan Eich不要使用它的请求.我一直在使用Typescript中的一些反射,将类的原型链导航到使用它的提供的祖先类,并且希望注入一个包含类元数据的原型属性.
有没有人对我可能产生的性能开销有任何细节,或者有一个不依赖__proto__的解决方案?
编辑 - 更新代码.这只是我输入的一个人为的例子,但它说明了我希望做的事情.我不太确定如何对由__proto__变异引起的经历的减速进行基准测试.但无论如何,我试了一下.实例化,原型属性访问和方法调用在修改时执行没有区别.
class Base {
public getClassName() : string {
return this['_className'] || undefined;
}
}
class Intermediate extends Base {
}
class Final extends Intermediate {
}
function traverseProtoChain(derivedClass, baseClass) {
var cursor = derivedClass.prototype;
while (cursor instanceof baseClass) {
if (isDefined(cursor.constructor)) {
var className = getProtoName(cursor);
if (isValidString(className))
cursor['_className'] = getProtoName(cursor);
}
if (isDefined(cursor.__proto__)) {
cursor = cursor.__proto__;
}
}
}
Run Code Online (Sandbox Code Playgroud)