我正在开发一个带有自己的功能区选项卡的Word加载项.我的大多数实际代码都包含在一些Service类中,这些类在ThisAddIn_Startup中初始化并分配给ThisAddIn单例对象的属性.我还有一个事件监听器,它监听我希望作为同一对象的属性向其余代码公开的剪贴板事件.
我遇到的问题是我的功能区的Load事件在ThisAddIn的Startup事件之前触发(即使单例对象已经初始化并分配给Globals.ThisAddIn).在我的Ribbon的Load事件处理程序中,我想在该侦听器上安装一个处理程序,并使用其中一个服务.但是,我不能,因为在程序执行的这一点上,它们是空的.
这个问题的最佳解决方案是什么?我可以让所有这些东西成为ThisAddIn的静态成员并在静态构造函数中初始化它们,但这似乎是错误的,并且还破坏了拥有Startup事件(或单个对象)的全部意义.
奇怪的是,当我的Ribbon刚刚将其组件添加到内置的Add-In选项卡时,我最初没有遇到此问题 - 然后在Startup之后触发了Load事件.
(注意:我在Visual Studio 2012中使用功能区设计器完成所有这些操作.)
我正在寻找一个大致对应的数据结构(用Java术语)Map<Set<int>, double>.基本上是一组标记的大理石,其中每组大理石与标量相关联.我希望它能够有效地处理以下操作:
在以下条件下:
我已经考虑过尝试,但是我没有看到处理"删除包含给定整数的每个集合"操作的好方法.
此数据结构的目的是表示离散随机变量,并允许对它们进行加法,乘法和标量乘法运算.这些离散随机变量中的每一个最终都是通过将这些操作应用于固定的(在编译时)一组独立的伯努利随机变量(即每个以一定概率取值1或0)来创建的.
被建模的系统接近于可表示为时间不均匀的马尔可夫链(当然这将极大地简化)但不幸的是,跟踪各种转换以来的持续时间是必要的.
作为我工作的一部分,我维护/开发内部Web应用程序.它的用户相对较少,而且不是那么大.我有一个包含一些重用样式的全局CSS文件,但是90%的特定于页面的样式确实是特定于页面的.它们就像伪列宽(我的很多输出只是非表格式,足以使表格成为糟糕的选择).我已经开始在这些页面的顶部抛出一个<style>块.
我知道这是不受欢迎的,但每当我读到单独的CSS文件的原因时,唯一真正突出的是缓存.在这种情况下无所谓; 如果我需要加快应用程序的速度,那就是我要做的事情清单.还有其他原因,还是我可以不再感到愧疚?