.NET随记
文章平均质量分 83
王熙中
喜欢计算机~爱编程~不爱BG
展开
-
利用SynchronizationContext.Current在线程间同步上下文
简而言之就是允许一个线程和另外一个线程进行通讯,SynchronizationContext在通讯中充当传输者的角色。另外这里有个地方需要清楚的,不是每个线程都附加SynchronizationContext这个对象,只有UI线程是一直拥有的。在多线程操作时往往需要切回某个线程中去工作,等完成后再切回来。如主UI线程中创建了一个子线程A。A中添加了委托事件。UI线程中向A线程的类注册了转载 2015-10-28 01:04:59 · 461 阅读 · 0 评论 -
关于C#中的CompareTo使用方法
int value_1 = 1;int value_2 = 2;if(value_1.CompareTo(value_2)>0){Console.WriteLine("value_1 大于 value_2");}else{Console.WriteLine("value_1 小于 value_2"); //结果必然是value_1小于value_2 }//CompareTo方法比较原创 2015-10-22 19:36:08 · 9991 阅读 · 0 评论 -
使用GetType()进行类型比较和使用typeof()获取类型
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;class Program{ static void Main(string[] args) { i原创 2015-10-22 20:08:43 · 834 阅读 · 0 评论 -
C#中out和ref之间的区别
首先:两者都是按地址传递的,使用后都将改变原来参数的数值。其次:rel可以把参数的数值传递进函数,但是out是要把参数清空,就是说你无法把一个数值从out传递进去的,out进去后,参数的数值为空,所以你必须初始化一次。这个就是两个的区别,或者说就像有的网友说的,rel是有进有出,out是只出不进。 ref(C# 参考)ref 关键字使参数按引用传递。其效果转载 2015-10-23 01:54:38 · 573 阅读 · 0 评论 -
C#中的is和as操作符区别
as不支持值类型,仅支持引用类型在C#语言中进行类型转换的操作符is和as。is和as都是强制类型转换,但这两者有什么相同之处和不同之处呢?在使用is和as需要注意哪些事项?下面我们从简单的代码示例去探讨这个简单的问题。注:此博文只是本人学习过程中一些简要记录,新手可以看一下,高手略过。is检查一个对象是否兼容于指定的类型,并返回一个Boolean值:true或者fasle。注意,转载 2015-10-23 02:24:33 · 497 阅读 · 0 评论 -
IL指令大全
名称说明Add将两个值相加并将结果推送到计算堆栈上。Add.Ovf将两个整数相加,执行溢出检查,并且将结果推送到计算堆栈上。Add.Ovf.Un将两个无符号整数值相加,执行溢出检查,并且将结果推送到计算堆栈上。And计算两个值的按位“与”并将结果推送到计算堆栈上。Arglist转载 2015-10-24 00:35:54 · 507 阅读 · 0 评论 -
关于事件与委托的一些个人简单理解
声明委托:public delegate [返回值类型] [委托名]([参数类型,形参名]);演示:public delegate void Test(int num);声明事件:(结合上面的委托)public event [委托名] [事件名];演示:public event Test TestEvent;简单地说Event(事件),它封装了委托类型的变量。使得委托使用起来更原创 2015-10-24 20:17:22 · 650 阅读 · 0 评论 -
const与readonly的区别
尽管你写了很多年的C#的代码,但是可能当别人问到你const与readonly的区别时候,还是会小小的愣一会吧~ 笔者也是在看欧立奇版的《.Net 程序员面试宝典》的时候,才发现自己长久以来竟然在弄不清出两者的情况下,混用了这么长的时间。的确,const与readonly 很像,都是将变量声明为只读,且在变量初始化后就不可改写。那么,const与readonly 这两个修饰符到底转载 2015-10-24 21:59:52 · 558 阅读 · 0 评论 -
C#中Monitor和Lock以及区别
Monitor对象 1.Monitor.Enter(object)方法是获取锁,Monitor.Exit(object)方法是释放锁,这就是Monitor最常用的两个方法,当然在使用过程中为了避免获取锁之后因为异常,致锁无法释放,所以需要在try{} catch(){}之后的finally{}结构体中释放锁(Monitor.Exit())。 2.Monitor的常用属性和方法:转载 2015-10-25 23:55:20 · 524 阅读 · 0 评论 -
关于委托与自定义事件EventArgs浅谈
初学编程半年,在学到委托和事件的时候遇到不少困惑,尤其是在EventArgs自定义事件上,调用关系让人看得眼花缭乱,现在希望与大家分享我个人对自定义事件程序编码的理解,如有不足还请大家多多指正(~仅是个人理解哈)在如下代码中出现“★”则代表曾经困惑到我的地方,在这些地方我将做一些个人见解性注释在如下代码中出现“※”则代表现在还惑到我的地方,望大拿指点~using System;u原创 2015-10-25 01:51:48 · 998 阅读 · 0 评论 -
C# 结构体 struct
C#中结构类型和类类型在语法上非常相似,他们都是一种数据结构,都可以包括数据成员和方法成员。 结构和类的区别: 1、结构是值类型,它在栈中分配空间;而类是引用类型,它在堆中分配空间,栈中保存的只是引用。 2、结构类型直接存储成员数据,让其他类的数据位于对中,位于栈中的变量保存的是指向堆中数据对象的引用。 C#中的简单类型,如int、double、bool等都是结构类转载 2015-11-01 00:25:00 · 440 阅读 · 0 评论 -
空合并操作符
空合并操作符即??操作符,他会对左右两个操作数进行判断,如果左边的数不为null,就返回左边的数,反之则返回右边的数,这个可空操作位运算符可以用于可空类型,亦可以用于引用类型,但是不能用于值类型,因为??运算符会将其左边的数与null进行比。使用??空合并运算符可以很方便的设置默认值,比变了通过if和else语句来进行判断,从而简化了代码行数,提高了代码的可读性。public static v原创 2015-11-01 20:50:40 · 837 阅读 · 0 评论 -
泛型List<T>方法属性
这两天上课正好学泛型和ArrayList之间的区别,在家看了看深入理解和李志的学习笔记,感觉泛型内容很多,在深入理解中就占了三四十页,目前小懂的一些方法与大家分享~后续学习深入我还会补充首先介绍一个List的方法 AsReadOnly() 此方法返回的是一个只读接口,实例: List num = new List();//首先创建一个泛型集合原创 2015-11-06 00:03:04 · 985 阅读 · 0 评论 -
关于 4.5中新增的异步编程新特性总结
async & await关于 4.5中新增的异步编程新特性总结1.用async标记的异步方应该使用await关键子来制定挂起点。await操作符会告诉编译器,这个async方法在完成之前,后面的代码无法继续执行,同时,控制权转移到async方法的调用者2.一个async方法里通常包含一个或多个的对应的await操作符,但如果没有await表达式也不会导致编译错误。但如果调转载 2015-11-02 01:32:24 · 396 阅读 · 0 评论 -
C#中IDisposable
本文导读:C#中IDisposable接口的主要用途是释放非托管资源。当不再使用托管对象时,垃圾回收器会自动释放分配给该对象的内存。但无法预测进行垃圾回收的时间。另外,垃圾回收器对窗口句柄或打开的文件和流等非托管资源一无所知。将此接口的Dispose方法与垃圾回收器一起使用来显式释放非托管资源。当不再需要对象时,对象的使用者可以调用此方法。在Net中,由GC垃圾回收线程掌握对象资源的释转载 2015-11-01 23:05:23 · 465 阅读 · 0 评论 -
FileMode文件模式
一.FileMode.AppendAppend追加:如果文件存在,则打开文件,把指针指到文件的末尾;如果不存在,则新建文件二.FileMode.CreateCreate:新建如果文件存在,则覆盖原有文件,把指针指到文件的开始,文件的创建日期会更新;如果文件不存在,则新建文件三.FileMode.CreateNewCreateNew:新转载 2015-11-19 00:28:22 · 4813 阅读 · 0 评论 -
backgroundworker与Thread区别
在我编写的一个程序中创建500个Thread后,程序垮掉。然而创建500个BackGroundWorker后,程序就能正常运行。这是为什么呢? 当用户执行一个非常耗时的操作时,如果不借助Thread编程,用户就会感觉界面反映很迟钝。在.Net 2.0中可以通过BackgroundWork非常方便地进行Thread编程,大致的步骤是:1、调用BackgroundWorker的RunWork转载 2015-10-29 16:47:38 · 1042 阅读 · 0 评论 -
(抽象)类和接口细节分析
抽象类是否可继承接口?抽象类里面可以包括抽象方法和非抽象方法,而接口只是定义了方法的原型,没有方法的具体定义。从这方面来分析,抽象类是可以继承接口的。 抽象类继承接口后,一定要实现接口中的成员方法么?答案是否定的。抽象类继承接口后,可以实现接口中的成员方法,也可以不实现。如果不实现接口中成员方法,只需将该方法声明为abstract类型就可以了。int转载 2015-11-01 15:09:01 · 507 阅读 · 0 评论