09 2012 档案
摘要:这个标题有些长,可能一时半会儿无法看懂。不如我们边看代码边说:[C#]namespace ServerControlTest{ [TypeConverter(typeof(ExpandableObjectConverter))] public class Point { [NotifyParentProperty(true)] public double X { get; set; } [NotifyParentProperty(true)] public double Y { get; set; } [N...
阅读全文
摘要:上一篇写到了微软经典的事件处理机制是通过EventHandlerList方式进行事件保存并且处理的。本节讲一个奇怪的问题——虚事件和事件重写问题(具体提问在:http://social.msdn.microsoft.com/Forums/zh-CN/csharpgeneral/thread/14400510-44da-4e95-95fa-fa584edc1917)请诸位看下文再说——现在假设有这样一个类:[C#]namespace CSharp{ public class A { public virtual event Action MyEvent = null; ...
阅读全文
摘要:在我先前一篇博文中已经明确说明事件的本质(返回值)其实是一个委托,既然如此,它必定包含全部委托的特性和意义。我们可以通过简单地定义一个委托,然后把它声明成一个public event就等于公开了一个事件,可以在其它地方通过引用该对象而被订阅触发。通常而言,一个典型的自定义事件可能如下:[C#]public class MyExample{ public event Action MyEvent; public void RaiseMyEvent() { if(MyEvent!=null) { MyEvent(); }...
阅读全文
摘要:使用数据库的朋友大家想必都知道,如果想要维持“一堆多”数据表数据的一致性,必须做到以下几点:1)插入时,外键必须包含于主表(“1”对多中“1”那个表)关联字段集合中。2)删除时,主表关联字段被删除,其子表关联数据也一律自动被删除。3)更新时,主表关联字段被更新,其子表关联数据也一律自动被更新。其实要做到这三点,最简单的一个做法莫过于:1)打开SQL Management Studio,成功登陆之后打开某个数据库(展开“+”节点),并且找到“Diagram”(关联图),导入所需要的表。2)从主表(“1”)鼠标左键按住不放,拖拽到从表(“多”)的“外键”字段。在弹出的对话框中分别确定设置主表和从表
阅读全文