以下TypeScript:
class A {
member = "value";
}
Run Code Online (Sandbox Code Playgroud)
...编译为:
var A = (function () {
function A() {
this.member = "value";
}
return A;
})();
Run Code Online (Sandbox Code Playgroud)
我想实现以下目标:
var A = (function () {
function A() {
}
A.prototype.member = "value";
return A;
})();
Run Code Online (Sandbox Code Playgroud)
这样做的原因是我相信后一种结构可能更有效,因为(1)this.member = "value"每次创建新实例时都不必执行赋值语句,(2)实例内存有效负载会更小.
免责声明:我没有基准标记这两个结构,所以我真的不知道是否是这种情况.
所以我的问题是:是否可以使用类型脚本声明"原型成员"?.
如果有人可以解释为什么类型脚本是这样设计的,我也很高兴?.(参见规范中的§8.4.1)
我理解以这种方式声明可变成员是愚蠢的,但是不可变原语的声明,比如string和number,应该可以在原型上设置,对吧?
可能的解决方法是:
class A {
member: string;
}
A.prototype.member = "value";
Run Code Online (Sandbox Code Playgroud)
但是,这对私人会员不起作用:
class A {
private member: string; …Run Code Online (Sandbox Code Playgroud) 我需要在分布式系统中生成标识符.
系统将检测到重复项,并导致创建该标识符的操作失败.我需要通过生成具有低冲突概率的标识符来最小化操作失败的可能性.
我还希望能够以数学方式描述生成重复数字的可能性.我不确定这样的描述是什么样的,最好我想知道这样X的东西:
当每秒生成1000个随机数10年时,应该生成不超过X个重复项.
这些随机数只能有35个有效位.该系统使用C#编写,并在Microsoft的.NET平台上运行.
所以这实际上是两个任务中的一个(但我想它们彼此依赖):
我应该使用什么组件/模式来生成标识符?
我该如何计算该X值?
(1)我看到以下候选人:
我需要数字有35个有效位的事实在生成值时不是问题,因为生成更大的数字然后只提取其中的35个就可以了.但是,它确实会影响我推测的数学计算.
UPDATE
我现在可以看到,对于我上面的描述,35位还不够.10年内我真的不需要每毫秒1个数字.这是一种夸大其词.
我真正需要的是一种分布式生成具有35个有效位且具有尽可能低冲突概率的标识符的方法.随着时间的推移,系统将"清理"标识符,以便可以再次使用相同的数字,而不会导致失败.
我知道我当然可以实施某种集中计数器.但我希望能够尽可能避免这种情况.我想最小化维护标识符所需的网络操作数量.
欢迎任何建议!
我们正在从 Visual Studio 运行自动化测试。其中一些测试需要与临时Redis服务器通信,因此我们在测试执行期间redis-server.exe在JobObject中启动。
redis-server.exe通过声明将可执行文件部署到测试运行目录[DeploymentItem("redis-server.exe")]。
这工作正常,除了每次测试运行都会显示一个烦人的 Windows 防火墙弹出窗口:

是否可以防止显示此弹出窗口?
例如,是否可以告诉 Windowsredis-server.exe允许位于特定目录下的任何人使用网络?
这特别烦人,因为在这种情况下对话框没有任何作用。无论我是选择单击“允许访问”还是“取消”,甚至只是忽略弹出窗口,测试仍将完成。但是,每次都会创建新的防火墙规则。
windows automated-tests windows-firewall visual-studio windows-8
在运行时,我想加载一个程序集,需要找到其依赖程序集的名称,以便我可以确定执行给定的DLL文件所需的程序集.