摘要:
泛化 在程序中表现为继承关系 表示方式:带三角箭头的实线,箭头指向父类 实现 在程序中表现为实现接口 表示方式:虚线加三角箭头 关联 表示方式:实线加方向箭头,箭头指向被拥有者 依赖 表示:虚线加方向箭头,箭头指向被依赖者 聚合 整体和部分的关系,整体和部分可以分开 表示方式:空心菱形和实线,菱形位 阅读全文
摘要:
在 Windows系统中,首先查看是否有文件 .git-credentials 可以用 everything 软件搜索,如果没有则按如下操作配置: 打开 git bash 命令行界面,运行下面两条指令 echo '[credential]' >> .git/configecho ' helper = 阅读全文
摘要:
自动装配:从容器中的可用服务中选择一个构造函数来创建对象实例 1 使用组件的默认构造函数创建对象实例 组件代码如下: public class ConstructorClass { public string Msg = string.Empty; public ConstructorClass() 阅读全文
摘要:
组件:组件可以是一个.Net类也可以是一个表达式,同时也可以是一个暴露一个或多个服务的的一段代码,同时组件可以引用其他的依赖。 服务:通常是一个接口(即用户通过接口来使用组件),也可以是.Net类(即组件可以暴露自己给用户作为一个服务),暴露给用户,是用户使用组件的通道。 依赖:一个被组件需要的服务 阅读全文
摘要:
程序在运行过程中不停的分配内存,但是直到结束的时候才释放内存。严格的说这里并没有发生内存泄漏,因为最终程序释放了所有申请的内存。 但是对于一个服务器程序,需要运行几天、几周甚至几个月,不及时释放内存也可能导致最终耗尽系统的所有内存 阅读全文
摘要:
进程会等待所有的前台线程完成后再结束本工作;但是如果只剩下后台线程,则会直接结束本工作,不会等待后台线程完成后再结束本工作。 1 new Thread创建的线程 默认情况下使用new Thread()方法创建的线程为前台线程,可以通过手动设置IsBackground属性来创建一个后台线程; 默认前台 阅读全文
摘要:
首先定义一个自定义的属性类MyAttribute,该类需要继承Attribute public class MyAttribute : Attribute { /// <summary> /// 代码 /// </summary> public string Code { get; set; } / 阅读全文
摘要:
需要使用反射调用的类定义如下: class InvokeTest { #region 静态方法 public static void StaticMethod(string para) { Console.WriteLine(para); } #endregion #region 实例方法 publ 阅读全文
摘要:
示例代码: #region Lambda表达式传参导致线程参数共享问题 public static void ThreadLambdaPara() { for(int i = 1; i <= 5; i++) { new Thread(() => ThreadMethod(i)).Start(); } 阅读全文
摘要:
Task<string>没有使用async标记方法,不能把string返回值自动转换为Task<string> 不使用async改写如下 在该方法前面加上async关键字后就不会有问题,会将string自动转换为Task<string> 阅读全文