『C#基础』一些零碎东西的记录(持续更新)

  1. Application.DoEvents();
    1. 使用参考:
      1. http://www.cnblogs.com/VOIP/archive/2010/12/08/1900497.html
      2. http://hi.baidu.com/bitlove/blog/item/cc66f2d4f64b07cf51da4ba1.html
    2. 说明:
      1. Processes all Windows messages currently in the message queue.「MSDN
      2. 处理现在在消息队列中的Windows消息
      3. 当我们打开一个Winform时,Winform就开始侦听我们的操作,也就是侦听事件。而如果我们处理一个很消耗时间的方法,就会产生假死的情况。这个时候,如果我们使用 DoEvents 方法,我们就可以让程序继续侦听我们对程序的其他操作事件,也就是说,就不会出现假死的情况。
      4. 使用这人方法的好处显而易见,但,如果我们在编码的时候不注意控制对正在执行操作的变量进行了重新赋值的话,就会造成一定的危险。
  2. 设计模式中的六个原则
    1. 参考文章:
      1. http://blog.csdn.net/httphttpcn/article/details/6079004
    2. "开-闭"原则
      1. 可以扩展,不可以修改
    3. 依赖倒转原则
      1. 高层模块不应该依赖底层模块
      2. 抽象不应该依赖细节,细节应该依赖抽象
    4. 里氏代换原则
      1. 子类型必须能够替换它们的父类型
    5. 单一职能原则
      1. 就一个类而言,应该仅有一个引起他变化的原因
    6. 迪米特法则
      1. 低耦合,高内聚
    7. 接口隔离法则
  3. switch分支的使用
    1. 如果你想用 int 或者 string 等类型的数据来进行方法的结果返回,那么你最好是使用switch而不是 if 来接收结果,这样更便于可能的扩展,也更好理解。
    2. 注意case的顺序,尽量将最可能出现的结果放到前面,而不是 0~9 A~Z 这样的顺序。
    3. case 中的 break 并不是必须的,必须的是当前条件的结束,也就是说return,break,continue等会跳出当前代码块的理论上说,都是可以的。
  4. 通信中,数据格式的选择
    1. 使用JSON等数据格式,可以让传输的数据更为明确,也不用担心传过去的字段多于需要的。
    2. 使用直接拼接的方式,可以让传输的数据最小,但是确会造成扩展性差的缺点。
  5. 委托
    1. .NET中的事件就是委托最好的例子。
    2. 可以使用委托的方式给对象添加事件触发时调用的处理方法。
  6. Annotation
    1. .NET中的Annotation貌似叫Attribute,类中的属性叫Property。
    2. 参考链接:
      1. 「MSDN」http://msdn.microsoft.com/en-us/library/System.Attribute.aspx
      2. http://jhxk.iteye.com/blog/481730
      3. http://www.gnu.org/projects/dotgnu/pnetlib-doc/System/Attribute.html
  7. C# MD5
    MD5

    2012年2月29日


    1. Asp.NET等服务器端程序可以使用Server.MapPath(“…”)来针对服务器端的目录进行操作。
    2. Winform可以使用System.Windows.Forms.Application.StartupPath来获取当前程序运行目录。
    3. 可以使用Path.Combine( …,…)来合并两个字符串为一个路径。
    4. 可以使用AppDomain.CurrentDomain.SetupInformation.ApplicationBase来获取当前程序运行目录。
      1. 这个与StartupPath有所不同,这个可以用在Asp.NET等服务器端,而StartupPath不可以用在服务器端(会提示一个路径包含非法字符的错误)。
    原文地址:https://www.cnblogs.com/sitemanager/p/2354364.html