共 3 页: 上一页 1 2 3 下一页
摘要:一、程序运行时产生的错误通过使用一种称为异常(Exception)的机制在程序中传递,通过异常处理(Exception Handling)有助于处理程序运行过程中发生的意外或异常情况;异常可由CLR和客户端代码抛出(Throw),抛出的异常会在调用堆栈中传递,直到遇到可以捕获该异常的语句进行处理并中 阅读全文
posted @ 2019-02-28 20:12 Minotauros 阅读 (892) 评论 (0) 编辑
摘要:一、迭代器(Iterator)通过持有迭代状态可以获取当前迭代元素并且识别下一个需要迭代的元素,从而可以遍历集合中每一个元素而不用了解集合的具体实现方式; 实现迭代器功能的方法被称为迭代器方法,迭代器方法的返回值类型可以是以下4种接口类型中任意一种:位于命名空间System.Collections中 阅读全文
posted @ 2019-02-26 18:05 Minotauros 阅读 (681) 评论 (0) 编辑
摘要:一、JIT编译器可以通过将方法内联展开(Method Inline Expansion)来提升效率,类似C++中的内联函数(Inline Function),与C++的内联函数不同的是,C#并不支持内联函数,而是由JIT编译器在运行时自动进行; 1.对于虚方法,如果JIT编译器可以确认调用该方法时变 阅读全文
posted @ 2019-01-31 11:59 Minotauros 阅读 (1510) 评论 (0) 编辑
摘要:一、在C#7.0以上版本中,方法的返回值可以通过关键字ref指定为返回变量的引用(而不是值)给调用方,这称为引用返回值(Reference Return Value,或ref returns); 1.与引用参数一样,使用关键字ref声明引用返回值: 2.使用引用返回值避免了值类型在方法返回时的浅拷贝 阅读全文
posted @ 2019-01-23 15:30 Minotauros 阅读 (1079) 评论 (1) 编辑
摘要:一、操作系统用进程(Processe)分隔正在执行的程序,用线程(Thread)作为操作系统分配处理器时间的基本单元,进程上下文中可以运行多个线程,进程的所有线程共享其虚拟地址空间,所有线程均可执行程序代码中的任意部分,包括其他线程正在执行的代码; 1.默认情况下,.NET程序只启动单个线程,被称为 阅读全文
posted @ 2018-12-16 22:57 Minotauros 阅读 (316) 评论 (1) 编辑
摘要:一、使用协变(Covariance)和逆变(Contravariance )能够实现数组之间、委托实例和方法之间、泛型委托实例之间、泛型接口的变量和泛型类型的对象之间、泛型接口的变量之间的隐式转换;使用协变将允许使用比原指定类型派生程度更大(即更具体的)的类型,使用逆变将允许使用比原指定类型派生程度 阅读全文
posted @ 2018-12-09 12:13 Minotauros 阅读 (561) 评论 (1) 编辑
摘要:本想接着上一篇详解泛型接着写一篇使用泛型时需要注意的一个性能问题,但是后来想着不如将之前的详解XX系列更正为现在的效率优化XX系列,记录在工作时遇到的一些性能优化的经验和技巧,如果有什么不足,还请大家多多指出; 在使用集合时,通常为了防止装箱操作而选择List<T>、Dictionary<TKey, 阅读全文
posted @ 2018-11-30 11:24 Minotauros 阅读 (1225) 评论 (2) 编辑
摘要:一、前面两篇文章分别介绍了定义泛型类型、泛型委托、泛型接口以及声明泛型方法: 详解C#泛型(一) 详解C#泛型(二) 首先回顾下如何构建泛型类: 其中,尖括号<>中的T代表的是该泛型类的类型参数,在使用时可以指定其类型,例如,指定类型参数为整数类型,创建封闭式构造类MyClass<int>: 二、这 阅读全文
posted @ 2018-11-23 12:16 Minotauros 阅读 (451) 评论 (1) 编辑
摘要:一、自定义泛型方法(Generic Method),将类型参数用作参数列表或返回值的类型: 1.声明泛型方法时,可以在参数列表中使用这个类型参数:void MyFunc<T>(T obj) { };此时在调用该泛型方法时可以省略类型参数的指定由编译器推断其类型,例如:MyFunc<int>(myNu 阅读全文
posted @ 2018-11-15 20:54 Minotauros 阅读 (541) 评论 (2) 编辑
摘要:在优化C#代码或对比某些API的效率时,通常需要测试某个方法的运行时间,可以通过DateTime来统计指定方法的执行时间,也可以使用命名空间System.Diagnostics中封装了高精度计时器QueryPerformanceCounter方法的Stopwatch类来统计指定方法的执行时间: 1. 阅读全文
posted @ 2018-11-08 20:29 Minotauros 阅读 (1327) 评论 (6) 编辑
共 3 页: 上一页 1 2 3 下一页