class A
{
public event EventHandler AEvent;
}
class B
{
private A _foo;
private int _bar;
public void AttachToAEvent()
{
_foo.AEvent += delegate()
{
...
UseBar(_bar);
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
由于delegate
捕获变量this._bar
,它是否隐含地保持实例B
?将B
通过事件处理程序和捕获的变量引用实例A
吗?
如果_bar
是方法的局部变量,它会有所不同AttachToAEvent
吗?
因为在我的情况下,A
生命的实例远远长于并且远小于实例B
,我担心通过这样做导致"内存泄漏".
double a = 18.565
return Math.Round(a,2)
Run Code Online (Sandbox Code Playgroud)
..返回18.57.
对于其他所有数字,我尝试过银行家的舍入按预期工作,例如Math.Round(2.565,2)返回2.56.
任何线索为什么以及何时发生?这是错误还是我错过了关于银行家四舍五入的事情?
谢谢..
我正在尝试使用ClickOnce部署Outlook加载项.在设置更新选项时,我注意到Outlook添加项目的选项少于Win Forms项目.例如,我无法指定所需的最低版本.这是为什么?另外,我想:
1)我尝试使用System.Deployment.Application和CheckForDetailedUpdate()函数,但即使更新成功,安装它也有问题:如果我重新启动我的插件它会从Outlook中消失,如果我没有旧版本卡在Outlook中(和虽然通过UNC路径进一步更新表明已成功完成更新,但行为很奇怪.
2)定期发布没有添加Mage或MageUI的特殊选项本身,但加载项似乎更新而不询问用户.谷歌搜索有点显示人们正试图做相反的事情,所以我有点疑惑为什么它默认不提示更新.
我尝试使用MageUI编辑从Visual Studio生成的清单,但是它为应用程序清单生成了无效的XML(?! - 它错过了"dependentAssembly"节点中的"assemblyIdentity"节点),并且当我从VS生成的原始清单中添加丢失的节点时(并更新)并在之后签名),安装抱怨组装哈希无效.
如何部署具有上述要求的Outlook加载项?