Parse转换失败时会抛出异常,耗损性能,如果转换成功,则与TryParse无差异.查看源码,tryparse的代码更多一些,在失败时,反而性能更优,主要是抛出异常耗损了性能.所以在不确定是用Tryparse,确定成功时用Parse,毕竟少写两行代码.…
编程语言的基元类型 编译器直接支持的数据类型称为基元类型.基元类型直接映射到Framework类库中存在的类型.例如:C#中的int直接映射到System.Int32类型.下表给出了C#基元类型与对应的FCL类型 C#规范中写道从风格上说,最好是使用关键字,而不是使用完整的系统类型名称,但作者认为最好使用FCL类型名称 许多开发人员纠结于到时使用string还是String.由于C#的string关键字直接映射到System.String,所以两者没有区别.有些人说应用程序在32位操作系统运行,…
区别: const是编译时常量(指反编译时看到的源码是常量本身,而不是变量),自带static,只能修饰基元类型.枚举.字符串,readonly是运行时常量(全局变量或者构造赋值),不受类型限制,但在运行时,第一次赋值后,不可改变.此处不可改变也分两种情况:值类型时,值本身不可改变,引用类型时,地址不可改变,对象的属性还是可以改变的.…
首先得出一个结论:==是比较变量内存的数据,Equals是值比较.但是他们都能被重写,所以object又增加了一个RefrenceEquals不可被重写,只比较数据: [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success), NonVersionable, __DynamicallyInvokable] public static bool ReferenceEquals(object objA, object obj…
其实没必要为枚举显式赋值,如果赋值了,就一定要全部赋值,否则默认在上一个元素的基础上+1,如果不给枚举变量赋值,就算枚举中没有0元素,也会显示为0,而超出枚举范围的整型数据,也会显示值本身,而不是异常. public enum mycolor{ green=, red, yellow= } console.writeline(mycolor.red);//显示为2 console.writeline((mycolor));//显示为9 mycolor m; console.writeline(m…
强转.as is 的用法 强制转换类型有两种:子类转基类,重写隐式(implicit )\显示(explicit) 转换操作符 class myclass { private int value; public int Value { get { return value; } } public myclass(int value) { this.value = value; } public static implicit operator myclass(int value) { retur…
线程文章:http://www.cnblogs.com/edisonchou/p/4848131.html 重点在于多个线程同时访问,保持线程的同步. 线程同步的问题: 1,线程同步比较繁琐,而且容易写错. 2,线程同步会损害性能,获取和释放一个锁是需要时间. 3,线程同步一次只允许一个线程访问资源. 类库和线程安全, 一个线程安全的发那个发意味着两个线程试图同时访问数据时,数据不会被破坏. 基元用户模式和内核模式构造 基元:指代码中最简单的构造,有两种基元构造:用户模式和内核模式. 1,基元用…
void Method1(string str, object a){} void Method2(string str, object a,object b) { } void Method3(string str, object a,object b,object c) { } //合成一个方法 void Method(string str, params object[] a) { } 传参数时:Method(str,new object[]{})或者 Method(str,a1,a2,a…
差异:override:覆盖父类分方法,new 隐藏父类方法. 共同:都不能改变父类自身方法. public class Test { public string Name { get; set; } public virtual void SetName() { Console.WriteLine("parent"); } } public class Testchildren:Test { public override void SetName() { Console.Write…
多线程就离不开lock,lock的本质是一个语法糖,采用了监视器Monitor. lock的参数,错误方式有很多种,只需要记住一种:private static readonly object lockobj=new object();只要写这行代码就不会错了,其他的公共的,值类型,this等,就被排除了. 那么为什么不能使用是公共属性或者this呢? 因为你在代码里锁了this或者公共属性,而外部调用是也可能同样先锁住,这样内部代码一直等待外部释放,外部一直等待内部执行,就死锁了. using…