- 博客(22)
- 收藏
- 关注
原创 初学多线程(二)--Monitor VS lock
**1.Both Monitor class and lock provider a mechanism that synchronizes access to objects.lock is the shortcut for Monitor.Enter with try and finally. 即lock是Monitor.Enter()的简写**private static object ob
2016-01-26 22:57:18
641
原创 初学多线程(一)--保护共享资源
1.共享资源未被保护,被多个线程并行访问,会发生资源分配上的冲突,两种方法保护共享资源 ps:共享资源像静态类中的字段,方法 How to protect shared resources from concurrent access?1.使用 Interlocked.Increment(字段) //在System.Threading class Program {
2016-01-26 21:23:16
803
原创 List集合排序Sort(Comparison<T> comparison)
List< T > 集合对复杂类型的排序Sort()有4个重载 1.T类型实现了IComparable< T >接口 2.另写一个类,该类实现了IComparer< T > 3.Sort(Comparison< T > comparison),Comparison< T >为一个委托类型,优快云定义如下:public delegate int Comparison< T >(T a ,T b
2016-01-26 00:09:31
4984
原创 可选参数Optional Parameters
4种可选参数的方法:1.params关键字+数组 eg.static int AddNumbers(int a, int b ,params int[] restNums) { int result = a + b; if (restNum != null) { foreach(int i in restNums) {
2016-01-25 16:17:10
949
原创 Partial Class verse Partial Method
I.**Partial Class 1.定义:部分类允许我们把一个类拆分为2个或者多个文件,然后编译时合成为一个文件 2.Partial关键字能用在class,struct,interface 3.部分类的好处: 1.VS用部分类来分开开发者代码和系统自动生成的代码,如:webForm1.aspx.cs和WebForm1.aspx.designer.cs 2.开发大项目时,可以同时工
2016-01-24 18:07:12
351
原创 Reflection LateBinding
Early Binding & Late Binding 1.Early Binding 在 编译时能发现错误 ,Late Binding则有可能在运行时抛出异常 2.Early Binding 性能更好,因为Late Binding要加载程序集,创建类型,实例等 3.Use Late Binding only when working with an object that are not
2016-01-24 17:30:04
333
原创 TreeView的几个概念
**1.控件整体叫TreeView类mainTree.Nodes则表示一个TreeNodeCollection类,其中mainTree为一个TreeView控件名mainTree的几个常用方法:1.添加根节点mainTree.Nodes.Add(nodeName);//mainTree类型为TreeView,mainTree.Nodes为TreeNodeCollection类型2.添加子节点
2015-12-20 16:46:57
719
原创 Stream/FileStream
1.大文件的拷贝//大文件拷贝,主要设置缓冲区,将文件已缓冲区的大小循环“读-写”,当读入的字节小于等于0时,停止写入数据示例://source,target分辨表示文件原路径和写入路径//创建读入流using(FileStream fsRead = new FileStream(source,FileMode.Open,FileAccess.Read)){ //创建写入流
2015-12-20 16:12:51
638
原创 Day-6 IEnumerable
1.快速使类(class)实现枚举,返回类型是IEnumerator class Program { static void Main(string[] args) { Person p = new Person(); foreach (object item in p) {
2015-12-16 22:31:11
304
原创 Day-5弱引用WeakReference,StringBuilder,格式控制
1.WeakReference 对一个大的对象,不再引用,以后有可能还要使用,则建立弱引用,如果对象未被GC,则可以直接使用,节省创建时间(一般用不到) class Program { static void Main(string[] args) { Person p = new Person(){
2015-12-10 17:53:34
472
原创 Day4-接口
写在日志前: 今天是个好日子,广州天气由雨转晴,温度适宜,在此时,二姐为我们家又添一名小成员,我又多了一个小侄女,由衷的感到高兴,名字暂未取,2015-12-10(二零一五年十月廿九 上午九时左右 5斤4两),希望侄女健健康康 ,快乐的成长。我也应该更加勤奋学习,“天道酬勤”,以此自勉。1.接口是一种规范,协议 2.接口主要是为了实现“多继承”(接口称之为“多实现”),继而实现多态。 3
2015-12-10 09:35:12
307
原创 Day3:12/05/2015 Abstract Polymorphic
—–写在前面:编程思想——//实现多态的编程方法:尽量向上转型,越抽象代码的重用性越高//1.能用接口类,就尽量不用抽象类//2.能用抽象类,就尽量不用实例类//3.能用父类,就尽量不用子类//4.能用抽象的父类,就尽量不用实例的父类1.Abstract抽象类 //-----抽象类 “只说不做”------- //1.抽象类中可以有实例成员,也可以有抽象成员 //2.抽象成
2015-12-05 15:18:13
376
原创 Day2:12/03/2015继承(Derived)
1.this() 继承关系中this:调用本类中的其它构造函数public class Person { public Person(string name ):this(name,0,null ) { } public Person(int age,string gender):this(string.Empty ,age,
2015-12-03 21:43:26
403
原创 Day1:12/01/2015
1.Trim() string str = " hello , wor l d ! "; str = str.Trim();//去除首尾的空格 Console.WriteLine(str);2.Split():将字符串分成字符串数组 string.Join()返回值为stringstring str = " hello , w
2015-12-01 15:50:09
324
原创 初学事件Event(二)
事件的完整声明:(刘铁猛老师视频示例) 按照事件的5要素去写using System;using System.Threading;namespace EventFullDeclaration{ class Program { static void Main(string[] args) { Customer
2015-11-27 17:41:49
398
原创 初学Event(一)
1.事件的5要素: 事件拥有者(Event Source,对象) 事件(Event,成员) 事件响应者(Event Subscriber,对象) 事件处理器(Event Handler,成员)—-本质是个回调函数 订阅关系()—-把事件和事件处理器关联起来,本质是委托类型为基础的“约定”2.*事件的触发必须由事件拥有者的内部逻辑触发*3.事件的本质是委托字段的包装器,包装器本身不能被包装*
2015-11-27 15:59:57
375
原创 几个点
1.yield return statement 1.理解:Here is the next element you asked me to yield from the enumerator 2.作用:On each yield statement, control is returned to the caller, but the callee’s state is
2015-11-14 12:01:53
395
原创 关于委托delegate的几点
1.委托delegate一般表达式:delegate return-Type delegateName (parameters)eg: //1.declare a delegate public delegate Tranform(int x); public static int Square(int x) {return x*x}; //2.instaniated dele
2015-11-13 23:03:04
474
原创 IEnumerator 和IEnumerable,及其泛型
1.一个collection要支持foreach,即对集合中的对象进行遍历(traverse),要遍历一个集合对象则需要满足下面条件: 方案a.让这个类实现IEnumerable接口 方案b:该类拥有一个public 的GetEnumerator()实例方法2.IEnumerator 这个接口提供2个方法,1个只读属性public interface IEnumerator{ boo
2015-11-07 17:17:34
355
转载 继承
继承原文地址 1.其成员被继承的类叫做基类或者父类base class,继承其成员的类也叫派生类或者子类derived class 2.派生类只能有一个直接基类,所以C#不支持多重继承,但一个基类可以有多个派生类。继承可以传递。 3.基类中的方法,成员设置为private时,派生类能够继承基类的私有成员,但是不能进行访问,可以将方法,成员设置为protected 4.在类前面添加sealed
2015-10-24 20:38:07
345
转载 关于C#静态构造函数的几点说明
原文地址 http://www.cnblogs.com/michaelxu/archive/2007/03/29/693401.html#3207631静态构造函数是C#的一个新特性,其实好像很少用到。不过当我们想初始化一些静态变量的时候就需要用到它了。这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调
2015-10-24 19:27:00
468
原创 C#几个基本概念
1.类 概念:类是对象的抽象化,类是一组具有相同数据结构和相同操作的对象集合,是对事物的一种概括性、抽象的描述,一般包含:字段,属性,方法2.对象 概念:对象是类的实例化,一般包含:创建对象——对象属性赋值——调用类方法3.字段 概念:又称为成员变量,一般在类的内部做数据交互使用,一般采用camel命名法,用private修饰 eg:`private int studentId;priva
2015-10-24 16:55:23
428
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人