随笔分类 -  .NET

1 2 3 4 5 ··· 7 下一页
摘要:下载地址: https://code.visualstudio.com/ alt downloads |各个版本比较|User Installer|System Installer|.zip| | | | | | |resources\app\product.json配置差异|"target": " 阅读全文
posted @ 2019-12-10 15:09 CharyGao 阅读(728) 评论(0) 推荐(0) 编辑
摘要:1.写在前面 相信大家对IOC和DI都耳熟能详,它们在项目里面带来的便利大家也都知道,微软新出的.NetCore也大量采用了这种手法。 如今.NetCore也是大势所趋了,基本上以.Net为技术主导的公司都在向.NetCore转型了,我也一直在想抽时间写几篇.NetCore的文章,可无奈最近的项目实 阅读全文
posted @ 2019-08-14 13:46 CharyGao 阅读(17286) 评论(4) 推荐(25) 编辑
摘要:写在前面 在开始之前,我们需要明确什么是C#(或者说.NET)中的资源,打码的时候我们经常说释放资源,那么到底什么是资源,简单来讲,C#中的每一种类型都是一种资源,而资源又分为托管资源和非托管资源,那这又是什么?! 托管资源:由CLR管理分配和释放的资源,也就是我们直接new出来的对象; 非托管资源 阅读全文
posted @ 2019-08-14 13:42 CharyGao 阅读(4945) 评论(0) 推荐(4) 编辑
摘要:相信很多童鞋们都被问到过这个问题,不管是在面试的时候被问过,还是笔试题里考过,甚至有些童鞋们找我要学习资料的时候我也考过这个问题,包括博主我自己,也曾被问过,而且博主现在有时作为公司的面试官,也喜欢问应试者这样的问题。 这确实是一道基础题,不管是在java里面还是在C#里面,都属于一道非常基础的题, 阅读全文
posted @ 2019-08-14 13:39 CharyGao 阅读(700) 评论(0) 推荐(0) 编辑
摘要:匿名函数 匿名函数(Anonymous Function)是表示“内联”方法定义的表达式。匿名函数本身及其内部没有值或者类型,但是可以转换为兼容的委托或者表达式树类型(了解详情)。匿名函数转换的计算取决于转换的目标类型:如果是委托类型,则转换计算为引用匿名函数所定义的方法的委托;如果是表达式树类型, 阅读全文
posted @ 2018-10-17 14:24 CharyGao 阅读(838) 评论(0) 推荐(0) 编辑
摘要:SOS.dll (SOS debugging extension) The SOS Debugging Extension (SOS.dll) helps you debug managed programs in Visual Studio and in the Windows debugger 阅读全文
posted @ 2018-10-10 13:16 CharyGao 阅读(410) 评论(0) 推荐(0) 编辑
摘要:概要 Microsoft Windows上的文件I / O可以是同步或异步的。I / O的默认行为是同步的,其中调用I / O函数并在I / O完成时返回。异步I / O允许I / O函数立即将执行返回给调用者,但是在未来的某个时间之前不会假定I / O完成。I / O完成后,操作系统会通知调用方。 阅读全文
posted @ 2018-10-09 16:34 CharyGao 阅读(537) 评论(0) 推荐(0) 编辑
摘要:建议11:区别对待 == 和Equals CLR中将“相等性”分为两类:1、值相等性:两个变量包含的数值相等。2、引用相等性:两个变量引用的是内存中的同一个对象。 但并不是所有的类型的比较都是按照其本身,比如string是一个特殊的引用类型,但是在FCL中,string的比较就被重载为针对“类型的值 阅读全文
posted @ 2018-09-30 15:47 CharyGao 阅读(468) 评论(0) 推荐(0) 编辑
摘要:在命名空间System.Threading.Tasks下,有一个静态类Parallel简化了在同步状态下的Task的操作。Parallel主要提供了3个有用的方法:For、ForEach、Invoke。 For方法,主要用于处理针对数组元素的并行操作,如下: staticvoid Main(stri 阅读全文
posted @ 2018-09-30 13:41 CharyGao 阅读(284) 评论(0) 推荐(0) 编辑
摘要:在C#中让线程同步的另一种编码方式就是使用线程锁。所谓线程锁,就是锁住一个资源,使得应用程序只能在此刻有一个线程访问该资源。可以用下面这句不是那么贴切的话来理解线程锁的作用:锁,就是让多线程变成单线程。在C#中,可以将被锁定的资源理解成new出来的普通对象。 既然需要锁定的资源就是一个C#中的对象, 阅读全文
posted @ 2018-09-30 13:39 CharyGao 阅读(411) 评论(0) 推荐(0) 编辑
摘要:所谓线程同步,就是多个线程之间在某个对象上执行等待(也可理解为锁定该对象),直到该对象被解除锁定。C#中对象的类型分为引用类型和值类型。CLR在这两种类型上的等待是不一样的。我们可以简单的理解为在CLR中,值类型是不能被锁定的,也即:不能在一个值类型对象上执行等待。而在引用类型上的等待机制,则分为两 阅读全文
posted @ 2018-09-30 13:37 CharyGao 阅读(186) 评论(0) 推荐(0) 编辑
摘要:在标准的Dispose模式中(见前一篇博客“C#中标准Dispose模式的实现”),提到了需要及时释放资源,却并没有进一步细说让引用等于null是否有必要。 有一些人认为等于null可以帮助垃圾回收机制早点发现并标识对象是垃圾。其他人则认为这没有任何帮助。是否赋值为null的问题首先在方法的内部被人 阅读全文
posted @ 2018-09-30 13:33 CharyGao 阅读(227) 评论(0) 推荐(0) 编辑
摘要:需要明确一下C#程序(或者说.NET)中的资源。简单的说来,C#中的每一个类型都代表一种资源,而资源又分为两类: 托管资源:由CLR管理分配和释放的资源,即由CLR里new出来的对象; 非托管资源:不受CLR管理的对象,windows内核对象,如文件、数据库连接、套接字、COM对象等; 毫无例外地, 阅读全文
posted @ 2018-09-30 13:32 CharyGao 阅读(226) 评论(0) 推荐(0) 编辑
摘要:要选择正确的集合,我们首先要了解一些数据结构的知识。所谓数据结构,就是相互之间存在一种或多种特定关系的数据元素的集合。结合下图,我们看一下对集合的分类。 集合分类 在上图中,可以看到,集合总体上分为线性集合和非线性集合。线性集合指元素具有唯一的前驱和后驱的数据结构类型。非线性集合是指具有多个前驱或后 阅读全文
posted @ 2018-09-30 13:28 CharyGao 阅读(247) 评论(0) 推荐(0) 编辑
摘要:As Ed Essey explained in Partitioning in PLINQ, partitioning is an important step in PLINQ execution. Partitioning splits up a single input sequence i 阅读全文
posted @ 2018-09-29 13:57 CharyGao 阅读(182) 评论(0) 推荐(0) 编辑
摘要:Every PLINQ query that can be parallelized starts with the same step: partitioning. Some queries may even need to repartition in the middle. Partition 阅读全文
posted @ 2018-09-29 13:55 CharyGao 阅读(216) 评论(0) 推荐(0) 编辑
摘要:dynamic是FrameWork4.0的新特性。dynamic的出现让C#具有了弱语言类型的特性。编译器在编译的时候不再对类型进行检查,编译期默认dynamic对象支持你想要的任何特性。比如,即使你对GetDynamicObject方法返回的对象一无所知,你也可以像如下那样进行代码的调用,编译器不 阅读全文
posted @ 2018-09-29 11:27 CharyGao 阅读(285) 评论(0) 推荐(0) 编辑
摘要:好吧,我承认,这是一个反标题,实际的情况是:我找不到一个非用ICloneable不可的理由。事实上,接口ICloneable还会带来误解,因为它只有一个Clone方法。 我们都知道,对象的拷贝分为:浅拷贝和深拷贝。ICloneable仅有一个Clone方法使我们无法从命名的角度去区分到底是哪个拷贝。 阅读全文
posted @ 2018-09-29 11:26 CharyGao 阅读(320) 评论(0) 推荐(0) 编辑
摘要:一:Task的优势 ThreadPool相比Thread来说具备了很多优势,但是ThreadPool却又存在一些使用上的不方便。比如: 1: ThreadPool不支持线程的取消、完成、失败通知等交互性操作; 2: ThreadPool不支持线程执行的先后次序; 以往,如果开发者要实现上述功能,需要 阅读全文
posted @ 2018-09-29 11:25 CharyGao 阅读(433) 评论(0) 推荐(0) 编辑
摘要:开发者总尝试对自己的代码有更多的控制。“让那个还在工作的线程马上停止下来”就是诸多要求中的一种。然而事与愿违,这里面至少存在两个问题: 第一个问题是:正如线程不能立即启动一样,线程也并不能说停就停。无论采用何种方式通知工作线程需要停止,工作线程都会忙完手头最紧要的活,然后在它觉得合适的时候退出。以最 阅读全文
posted @ 2018-09-29 11:25 CharyGao 阅读(281) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 7 下一页
点击右上角即可分享
微信分享提示