11 2013 档案

正则表达式的使用
摘要:/*正则表达式的使用*/using System.Text.RegularExpressions;namespace Frank{ public class Test { //程序入口 public static void Main(string[] args) { const string myText = "abcdeafsgabcadefgaaabcdefagaabcdefgaa"; string pattern = "a"; MatchCollection myMatches = Regex.Matches(myText,pattern... 阅读全文

posted @ 2013-11-30 16:20 wp456 阅读(179) 评论(0) 推荐(0)

string类和StringBuilder格式化的使用
摘要:/*string类和StringBuilder格式化的使用*/using System;using System.Text;namespace Frank{ public class Test { //程序入口 public static void Main(string[] args) { //string类是一个不可变的类,如果对一个string类型的变量进行多少的修改应该使用StringBuilder类,因为后者比前者速度更快,更节省空间 string str = "1"; str += "2"; StringBuilder SB = ... 阅读全文

posted @ 2013-11-30 15:02 wp456 阅读(796) 评论(0) 推荐(0)

弱事件模式(WPF里面就使用了弱事件模式)
摘要:/*弱事件直接连接发布程序和侦听器如果发布器不在连接侦听器的话垃圾回收不能清空侦听器。这种强连接可以通过弱事件模式来解决。*/using System;using System.Windows;namespace Frank{ public class WeakCarInfoEventManager : WeakEventManager { /// ///添加监听 /// public static void AddListener(object source,IWeakEventListener listener) { CurrentMangeager.ProtectedAdd... 阅读全文

posted @ 2013-11-30 13:37 wp456 阅读(308) 评论(0) 推荐(0)

事件
摘要:/*事件定义事件需要用委托类型的去声明一个事件。*/using System;namespace Frank{ public class Test { public delegate string Get(string x);//自定义委托 //简写模式的事件 public event Get NewEvent;//自从有了EventHandler泛型委托后就在也不需要自己定义委托了。它有两个参数,第一个是调用者,第二个是T类型。还定义了约束。 //完整模式的事件定义,类似于属性和字段。编译器自动的添加的。 /* public event Get NewEvent2 { ... 阅读全文

posted @ 2013-11-29 16:54 wp456 阅读(209) 评论(0) 推荐(0)

匿名方法和Lambda表达式的使用
摘要:/*匿名方法和Lambda表达式的使用*/using System;namespace Frank{ public class Test { public static void Main(string[] args) { string mid = ", middle part,"; Func anonDel = delegate(string param)//创建匿名方法交给委托 { param += mid; param += " and this was added to the string."; return param... 阅读全文

posted @ 2013-11-29 14:07 wp456 阅读(168) 评论(0) 推荐(0)

多播委托
摘要:/*多播委托*/using System;namespace Frank{ public class Test { public static void Main(string[] args) { Action operations = MathOperations.MultiplyByTwo; operations += MathOperations.Square; ProcessAndDisplayNumber(operations,20.00);//一次执行多个方法,如果一个方法抛出了异常,那么后面的方法就不会被执行。 //为了避免方法抛... 阅读全文

posted @ 2013-11-28 17:05 wp456 阅读(175) 评论(0) 推荐(0)

委托练习一
摘要:/*委托*/using System;namespace Frank{ public class Test { private delegate string GetAString();//定义委托 private delegate double DoubleOp(double x);//定义第二个委托 public static void Main(string[] args) { GetAString str = new GetAString(1.ToString); GetAString str2 = 1.ToString;//自动类型推断 ... 阅读全文

posted @ 2013-11-28 14:42 wp456 阅读(144) 评论(0) 推荐(0)

params、explicit、可选参数和implicit的使用
摘要:/*params、explicit、可选参数和implicit的使用explicit 显示的implicit 隐士的params 可变参数必须是参数列表最后一个*/using System;namespace Frank{ public class Test { public int Count{get;set;} public static void Main(string[] args) { Test t = new Test(); t.Count = 10; Test2 t2 = new Test2(); t2.Count = 20; ... 阅读全文

posted @ 2013-11-28 10:46 wp456 阅读(228) 评论(0) 推荐(0)

运算符的重载
摘要:/*运算符的重载运算必须是public和static的。公共的静态实例,而不是特定的。*/using System;namespace Frank{ public class Test { public static void Main(string[] args) { Test2 t1 = new Test2(); t1.Count = 1; Test2 t2 = new Test2(); t2.Count = 4; System.Console.WriteLine((t1+t2).Count);//输出5 System.Consol... 阅读全文

posted @ 2013-11-27 16:55 wp456 阅读(162) 评论(0) 推荐(0)

相等性的理解
摘要:/*相等性的理解*/using System;namespace Frank{ public class Test { public static void Main(string[] args) { /* object里面有个Equals方法和==结果一样 微软为基础结构类型和string类型重载了==运算符,所以使用==的时候比较是内容,不在是引用地址。如果自己定义类或者结果最好重写Equals和重载==运算符,这样子才不会存在比较引用地址。 object里面还有一些其他比较方法。 */ } }} 阅读全文

posted @ 2013-11-27 16:15 wp456 阅读(151) 评论(0) 推荐(0)

类型转换
摘要:/*类型转换*/using System;namespace Frank{ public class Test { public static void Main(string[] args) { double d = 1.6; int i = (int)d;//丢失小数点后面的 System.Console.WriteLine(i);//1 double us1 = 65.1; char c1 = (char)us1; System.Console.WriteLine(c1);//A } }} 阅读全文

posted @ 2013-11-27 16:08 wp456 阅读(104) 评论(0) 推荐(0)

运算符的介绍
摘要:/*运算符的介绍*/using System;namespace Frank{ public class Test { public static void Main(string[] args) { //检查运算 byte b = 255; checked //执行安全检查 { //b++;//异常 } unchecked//不执行安全检查,默认方式 { b++;//不异常,但是溢出会得到0 } System.Console.WriteLine(b); //is运算 int i = 10; if(i... 阅读全文

posted @ 2013-11-27 15:45 wp456 阅读(167) 评论(0) 推荐(0)

元组
摘要:/*元组元组可通过.net框架用于所有的.net语言.net 4定义了8个泛型Tuple类和一个静态的Tuple类,它们用作元组的工厂。*/using System;namespace Frank{ public class Test { public static void Main(string[] args) { Tuple result = Divide(2,5); System.Console.WriteLine(string.Format("{0}----{1}",result.Item1,result.Item2)); } ... 阅读全文

posted @ 2013-11-27 14:41 wp456 阅读(162) 评论(0) 推荐(0)

枚举迭代
摘要:/*枚举迭代如果需要foreach迭代的支持那就要实现接口IEnumerable的GetEnumerator方法返回一个IEnumerable接口的枚举该方法通过MoveNext方法和Current属性来迭代。用yield语句轻松创建枚举器*/using System;using System.Collections.Generic;namespace Frank{ public class Test { public static void Main(string[] args) { /* IL不会把foreach解析为IL语言 C#中定义的fo... 阅读全文

posted @ 2013-11-27 14:25 wp456 阅读(309) 评论(0) 推荐(0)

数组段ArraySegment<T>的使用
摘要:/*数组段ArraySegment的使用*/using System;namespace Frank{ public class Test { public static void Main(string[] args) { int[] array1 = new int[]{1,2,3,4,5}; int[] array2 = new int[]{6,7,8,9}; ArraySegment[] as1 = new ArraySegment[]//实例化泛型数组段,指定输入数组的开始索引及个数 { new ArraySegment(arr... 阅读全文

posted @ 2013-11-26 15:23 wp456 阅读(2467) 评论(0) 推荐(0)

数组协变和抗变
摘要:/*数组协变和抗变*/using System;namespace Frank{ public class Test { public static void Main(string[] args) { int[] array = new int[]{1,1}; Get(array);//需要Array类型,传递的是int[]类型 协变 int[] array2 = (int[])Set();//抗变,返回Array类型,需要强制转换为int[]类型 } public static void Get(Array a)//需要Arra... 阅读全文

posted @ 2013-11-26 14:53 wp456 阅读(201) 评论(0) 推荐(0)

Array 抽象类的使用及排序
摘要:/*Array 抽象类在C#中使用[]创建数组其实是Array的表示法,C#会创建一个派生Array的新类,然后就能使用Array的方法和属性了。*/using System;namespace Frank{ public class Test { public static void Main(string[] args) { int[] ar = {1,2};//方括号C#的特殊语法,自动创建了一个派生自Array的类。 System.Console.WriteLine(ar.LongLength+"---"+ar.Rank+"---"+ar.Ge. 阅读全文

posted @ 2013-11-26 14:34 wp456 阅读(285) 评论(0) 推荐(0)

数组的定义及遍历方式
摘要:/* 数组的定义及遍历方式*/namespace Frank{ public class Test { public static void Main(string[] args) { #region 一维数组 int[] array0;//声明对象 array0 = new int[4];//定义 array0[0] = 1;//赋值 int[] array1 = new int[4];//声明并定义 array1[0] = 2;//赋值 int[] array2 = new int[1]{1};//声明定义初始化值 int[] array3 = n... 阅读全文

posted @ 2013-11-25 22:21 wp456 阅读(257) 评论(0) 推荐(0)

泛型方法
摘要:/*泛型方法泛型方法不需要定义在泛型类中泛型方法也是可以重载的,如果一个方法有泛型版本和int类型版本,那么能在编译期间确认的版本会优先调用那个类型的版本,然后再选择泛型版本。*/using System;using System.Collections.Generic;namespace Frank{ public class Test { public static void Main(string[] args) { int a = 5; Test t = new Test(); t.Get(a);//调用泛型方法,如果传的类型与定义的不一样... 阅读全文

posted @ 2013-11-25 16:48 wp456 阅读(163) 评论(0) 推荐(0)

泛型结构体
摘要:/*泛型结构体*/namespace Frank{ public class Test { public static void Main(string[] args) { } } public struct Test4 where T:struct //定义泛型结构体,跟普通的结构体没啥区别 { public Test4(T value) { this.T4 = value; } public T T4; }} 阅读全文

posted @ 2013-11-25 16:05 wp456 阅读(418) 评论(0) 推荐(0)

泛型协变和抗变
摘要:/*泛型协变和抗变.net 4.0增加的特性参数是可以协变的方法返回类型是抗变的*/namespace Frank{ public class Test { public static void Main(string[] args) { Rectangle s = new Rectangle(); Rectangle r = new Rectangle(); r.Set(s);//协边,需要基类型,但是可以传递子类型的引用,总是隐士的。 //Rectangle r2 = r.Get();//抗变,需要显示。因为返回的父类型不一定总是子类型中... 阅读全文

posted @ 2013-11-25 16:03 wp456 阅读(230) 评论(0) 推荐(0)

泛型类功能
摘要:/*----泛型---性能:泛型类型在JIT时不在进行装箱拆箱类型安全性:定义是什么类型就必须放入什么类型二进制代码重用:可以在.NET中其他语言重用代码的扩展:命名约定:在定义泛型类的时候最好使用T进行类型替代。泛型类功能默认值约束继承静态成员*/using System.Collections;using System.Collections.Generic;namespace Frank{ public class Test { public static void Main(string[] args) { } }}publi... 阅读全文

posted @ 2013-11-22 14:28 wp456 阅读(171) 评论(0) 推荐(0)

泛型---泛型链表
摘要:/*----泛型---性能:泛型类型在JIT时不在进行装箱拆箱类型安全性:定义是什么类型就必须放入什么类型二进制代码重用:可以在.NET中其他语言重用代码的扩展:命名约定:在定义泛型类的时候最好使用T进行类型替代。*/using System.Collections;using System.Collections.Generic;namespace Frank{ public class Test { public static void Main(string[] args) { List li = new List(); LinkedList l... 阅读全文

posted @ 2013-11-22 14:01 wp456 阅读(207) 评论(0) 推荐(0)

接口 interface
摘要:/*接口 interface就是一系列公共标准接口只能包含:方法、属性、索引器、事件。接口中不能定义字段,不能有构造方法。方法不能实现。不能包含运算符重载接口中的成员不能有修饰符,因为接口总是公共的。*/namespace Frank{ public class Test { public static void Main(string[] args) { } } public interface ITest2 { int Age{get;set;} void Get(); int Set(int a); } public in... 阅读全文

posted @ 2013-11-21 15:58 wp456 阅读(176) 评论(0) 推荐(0)

其他修饰符
摘要: 阅读全文

posted @ 2013-11-21 15:34 wp456 阅读(99) 评论(0) 推荐(0)

访问修饰符
摘要:/*访问修饰符:private:私有的,只能内部访问protected:只有派生的类型才能访问protected internal:派生类和包含它的程序集中访问internal:包含它的程序集中能访问(默认的)public:任何地方都能访问类只能是public和internal*/namespace Frank{ public class Test { public static void Main(string[] args) { } } internal class Test2 { }} 阅读全文

posted @ 2013-11-21 15:30 wp456 阅读(127) 评论(0) 推荐(0)

密封类sealed和密封方法
摘要:/*密封类sealed和密封方法密封类不能被继承,例如string类就是一个密封类,密封方法不能被改写,但是一般不要定义密封方法,如果不想要被重写,不要定位为虚方法即可。*/namespace Frank{ public class Test { public static void Main(string[] args) { } } public class Test3 { public virtual int Age{get;set;}//定义一个虚属性 public virtual void Get(){}//定义一个虚方法... 阅读全文

posted @ 2013-11-21 14:47 wp456 阅读(308) 评论(0) 推荐(0)

抽象类和抽象方法
摘要:/*抽象类和抽象方法*/namespace Frank{ public class Test { public static void Main(string[] args) { } } /// ///定义一个抽象类 ///抽象方法不能被实现,继承的必须实现抽象方法 ///抽象方法可以定义已经实现的 /// public abstract class Test2 { public abstract void Get();//定义一个抽象方法,抽象方法不能有实现。必须在抽象类里面。 public void Set() { ... 阅读全文

posted @ 2013-11-21 14:39 wp456 阅读(155) 评论(0) 推荐(0)

继承、虚方法、重写。隐藏方法,调用父类的方法和父类的构造函数
摘要:/*继承、虚方法、重写。隐藏方法,调用父类的方法和父类的构造函数*/namespace Frank{ public class Test { public static void Main(string[] args) { Test3 t = new Test3(); t.Set(); t.Get(); } } public class Test2 { public void Set() { System.Console.WriteLine("父类"); } public virtual void Get() { ... 阅读全文

posted @ 2013-11-21 14:33 wp456 阅读(378) 评论(0) 推荐(0)

扩展方法
摘要:/*扩展方法,如果一个需要更改一个类如果有源码那就用继承给对象添加功能。如果没有源码,那就用扩展方法给对象添加功能。添加扩展方法必须是非泛型的静态类中定义,而且必须是静态方法。*/namespace Frank{ public class Test { public static void Main(string[] args) { Extension e = new Extension(); e.Add(1); } } public static class AddExtension { public static void... 阅读全文

posted @ 2013-11-19 16:37 wp456 阅读(171) 评论(0) 推荐(0)

静态类、静态方法、静态构造函数
摘要:/*静态类、静态方法、静态构造函数静态构造函数由CLR调用,在类第一次实例化的时候调用。而且最多调用一次。不能有参数,有参数也没有意义,因为C#代码无法调用静态构造函数。访问修饰符也没有意义。*/namespace Frank{ public class Test { public static void Main(string[] args) { Test2.Get(); } } public static class Test2 { static Test2() { } static void Get() { ... 阅读全文

posted @ 2013-11-19 16:20 wp456 阅读(275) 评论(0) 推荐(0)

部分类 partial
摘要:/*部分类 partial允许把同一个类的不同部分放在不同的文件里面。不能有相同的成员。访问级别必须相同*/namespace Frank{ public partial class Test { public static void Main(string[] args) { } } public partial class Test { public int Age{get;set;} }} 阅读全文

posted @ 2013-11-19 16:01 wp456 阅读(168) 评论(0) 推荐(0)

结构体
摘要:/*结构体 轻型数据体字段成员不能赋值为直接量。结构体跟类不同的是在使用new关键字的时候并不会再堆中分配内存,只是调用构造函数。即使不对结构体进行初始化也能用。结构体不能覆盖系统分配的无惨构造函数。结构体是按值传递,所以在方法内部修改结构体内部的字段并不会对原有的结构体字段改变,除非使用ref关键字。结构体并不支持继承但可以实现接口,但是所有的结构体都继承System.ValueType,ValueType又继承了Object。*/namespace Frank{ public class Test { public static void Main(string[] a... 阅读全文

posted @ 2013-11-19 15:52 wp456 阅读(163) 评论(0) 推荐(0)

C#匿名类型
摘要:var doctor = new {FN="1"}; 编译器自动推断类型System.Console.WriteLine(doctor.FN); 不要用新对象上的任何反射类型,因为这会得到不一样的结果。 阅读全文

posted @ 2013-11-19 15:19 wp456 阅读(80) 评论(0) 推荐(0)

out和ref
摘要:/*out和refref 按引用传递,一般用于结构体类型和string类型,引用类型不需要ref也能修改里面的值。使用前必须初始化变量out 输出参数,使用前可以不需要初始化参数。但离开方法体的时候必须对变量进行赋值。*/namespace Frank{ public class Test { public static void Main(string[] args) { int i = 20; Get(ref i); System.Console.WriteLine(i);//输出10 string str = "2"; Get(ref... 阅读全文

posted @ 2013-11-19 14:08 wp456 阅读(154) 评论(0) 推荐(0)

C#规范简单介绍
摘要:/*C#规范不能以关键字作为变量名字,如果非要用,需要加上@前缀例如:int @int = 5;私有的成员字段通常前面用下划线开头给方法传递的参数一般前面小写开头,每个单词前面大写私有成员及参数名字应使用camel表示法,类、名称空间、公共及受保护的成员用Pascal表示法*/namespace Frank{ public class Test { public static void Main(string[] args) { //int _I = 5; //int \u005fI = 5;//\u005f是下划线_的unicode码,所以不能定义两... 阅读全文

posted @ 2013-11-18 16:33 wp456 阅读(127) 评论(0) 推荐(0)

C#预处理指令的使用及理解
摘要:#define DEBUG //定义//#undef DEBUG//销毁定义的/*C#预处理指令必须定义在源文件代码的开始C#预处理指令用于版本控制,例如测试版本和正式版本的功能限制。编译器会根据实际逻辑去编译代码。*/namespace Frank{ public class Test { #pragma warning disable 169 //禁用编译指示警告信息 int age;//编译指示警告“从不使用字段”将不会显示出来 #pragma warning restore 169//恢复编译指示警告信息 int age2;//显示出编译指示警告 publi... 阅读全文

posted @ 2013-11-18 15:26 wp456 阅读(253) 评论(0) 推荐(0)

注释的使用
摘要:/*注释的使用*/namespace Frank{ /// /// 测试类 /// public class Test { /// /// 程序入口点 ///输入参数 /// public static void Main(string[] args) { //单行注释 /* 多行注释 */ } /// /// XML文档注释 ///无返回值 /// /// public void Get(int x) { } }}/* 生成XML文档:csc /doc:Test.xml Test.cs 打开生... 阅读全文

posted @ 2013-11-18 14:14 wp456 阅读(141) 评论(0) 推荐(0)

控制台I/O
摘要:/*控制台I/O在System下面有个Console类里面提供了几个实用的静态方法Console.Write()输出到控制台Console.WriteLine()输出到控制台后输出一个换行符WiteLine方法还支持格式化输出。*/namespace Frank{ public class Test { public static void Main(string[] args) { //简单的格式化输出 System.Console.WriteLine("{0} plus {1} equlas {2}",1,2,1+2);//输出:1 plus 2 ... 阅读全文

posted @ 2013-11-18 13:39 wp456 阅读(204) 评论(0) 推荐(0)

一个源文件引用另外一个文件的类库
摘要:namespace Frank2{ public class Test { public void Print() { System.Console.WriteLine(this.GetType().Namespace); } }} csc /t:library Test2.cs //输出一个单文件程序集using System;using F2 = Frank2;namespace Frank{ public class Test { public int Age{get;set;} public static void Main(string[] args... 阅读全文

posted @ 2013-11-18 11:41 wp456 阅读(250) 评论(0) 推荐(0)

csc编译输出类型
摘要:利用csc.exe编译工具我们可以输出自己想要的类型。默认的是输出exe文件。例如: csc /t:exe Test.cs 输出一个exe文件 csc /t:library Test.cs 输出一个带清单的dll文件类库 csc /t:module Test.cs 输出一个没有清单的组件(模块)文件。 csc /t:winexe Test.cs 输出Windows应用程序(没有控制台窗口)程序集,模块,类库的定义。程序集分为提供功能的dll或者带Main方法入口的exe文件。一个程序集里面可以包含模块,和类库。程序集里面有一个文件用于保存清单。(清单是元数据部分中一组数据表的集合,其中... 阅读全文

posted @ 2013-11-18 11:28 wp456 阅读(270) 评论(0) 推荐(0)

Main方法
摘要:/*Main方法Main是程序的开始,必须定义为void或者int类型的静态方法,不过Main方法的访问级别不重要,即使定义的private也是可以执行的。如果多个类中都有静态的Main方法,那么就会出现编译错误。这时候需要指定运行哪个类中的Main方法。指定需要运行的Main方法csc Test.cs /main:Frank.Test个Main方法输入参数Test.exe 1 2 3*/using System;namespace Frank{ public class Test { public static void Main(string[] args) ... 阅读全文

posted @ 2013-11-18 10:52 wp456 阅读(187) 评论(0) 推荐(0)

命名空间及别名的使用
摘要:/*命名空间及别名的使用*/using System;using FB = Frank.Base;namespace Frank{ public class Test { public static void Main(string[] args) { FB::Test t = new FB::Test();//或者FB.Test t.GetNamespace(); } }}namespace Frank.Base{ public class Test { public void GetNamespace() ... 阅读全文

posted @ 2013-11-18 10:29 wp456 阅读(209) 评论(0) 推荐(0)

C# enum枚举的定义
摘要:using System;/*枚举enum 结构体,一旦编译好枚举就会成为基本类型,所以不会造成性能损失。优势: 代码更容易维护,有助于给变量合法、期望的值。 使代码更加清晰,允许用描述性的名称表示整数值,而不是模糊、变化多段的数来表示。*/namespace Frank{ public class Test { public static void Main(string[] args) { Frank.Test t = new Frank.Test(); t.GetTimeStr(TimeOfDay.Morning);//根据用户输入的枚举值得到对应的时段 System.C... 阅读全文

posted @ 2013-11-07 22:44 wp456 阅读(447) 评论(0) 推荐(0)

break,continue,return语句的介绍
摘要:break用于终止循环体或者switch体。continue用于终止当前循环,进入下一次循环。return返回到方法体外面。 阅读全文

posted @ 2013-11-07 22:30 wp456 阅读(137) 评论(0) 推荐(0)

臭名远扬的goto跳转语句
摘要:using System;namespace Frank{ public class Test { public static void Main(string[] args) { Lab1: System.Console.WriteLine("标签1"); Lab2: System.Console.WriteLine("标签2"); if(System.Console.ReadLine().ToString().Equals("1")) { goto Lab1;//跳转到Lab1标签后又开始从上面执行下来。 System.Conso 阅读全文

posted @ 2013-11-07 22:27 wp456 阅读(350) 评论(0) 推荐(0)

C# 循环体和迭代体
摘要:using System;namespace Frank{ public class Test { public static void Main(string[] args) { for(;;)//无限循环 { System.Console.WriteLine("请输入!"); string input = System.Console.ReadLine(); if(input.Equals("y")) { System.Console.WriteLine("用户退出系统!"); break; } else { S... 阅读全文

posted @ 2013-11-07 22:16 wp456 阅读(303) 评论(0) 推荐(0)

C# switch
摘要:using System;namespace Frank{ public class Test { public static void Main(string[] args) { string input = System.Console.ReadLine(); switch(input) { case "1": System.Console.WriteLine("用户输入1"); break; default: System.Console.WriteLine("输入火星文!"); break; } } }} 阅读全文

posted @ 2013-11-07 22:05 wp456 阅读(166) 评论(0) 推荐(0)

C# if语句
摘要:using System;namespace Frank{ public class Test { public static void Main(string[] args) { string input = System.Console.ReadLine(); if(input.Equals("yes")) { System.Console.WriteLine("用户退出系统!"); } else { System.Console.WriteLine("用户输入:"+input); } } }} 阅读全文

posted @ 2013-11-07 22:03 wp456 阅读(131) 评论(0) 推荐(0)

.net类型(CTS)的介绍
摘要:整型有八个:可以对整型赋值十进制和十六进制。uint ui = 123U;int i =0x123456;long l = 123456L;ulong = 123UL;浮点类型:默认是浮点型是double类型,如果要用float类型,在后面加F。float f =1.999999F;//6位 超出进一double d = 1.99999999999999;//14位 超出进一decimal不是基本类型里面的,它是一种用于财务方面计算的类型,所以在使用该类型的时候会出现性能损失的情况。定义一个decimal类型的需要在后面加M。decimal d2 = 1.9999999999999999999 阅读全文

posted @ 2013-11-06 15:21 wp456 阅读(1014) 评论(0) 推荐(0)

C#常量(const)
摘要:常量顾名思义就是在应用中不变得量,必须对其显示初始化值,不能使用对象进行赋值。常量总是静态的,但是不能显示声明为静态(static)的。一旦赋值就不能进行改变,如果要使用对象赋值,可以使用只读属性。const int a = 10;如果把引用类型的变量定义为常量,那么就要设置为null,不然编译错误。string类型的除外。 阅读全文

posted @ 2013-11-06 11:52 wp456 阅读(159) 评论(0) 推荐(0)

第一个C#程序
摘要:using System;namespace Frank{ public class MyFistClass { public static void Main() { Console.WriteLine("Hello World!"); Console.ReadLine(); return; } }} 然后通过命令行:csc Test.cs,进行编译,然后生成一个exe文件,要使用csc命令时需要把.net framework框架的目录添加到环境变量。 阅读全文

posted @ 2013-11-06 10:30 wp456 阅读(88) 评论(0) 推荐(0)

CTS、CLS等
摘要:CTS:通用类型系统。CLS:公共语言规范。CLR:公共语言运行时JIT:即时编译COM:组件对象模型IL:中间语言garbage collector:垃圾回收器 阅读全文

posted @ 2013-11-05 22:46 wp456 阅读(146) 评论(0) 推荐(0)

C#和.net简单介绍
摘要:C#和.net的关系.net是一个平台,这个平台里面可以支持很多种语言,c#只是其中的一种,.net支持的特性C#不一定支持,C#支持的.net不一定支持比如(运算符重载)。公共语言运行库.net framework的核心是其运行库执行环境,成为公共语言运行库(CLR)或.net运行库。通常将在CLR控制下运行的代码称为托管代码(managed code)。CLR执行编写好的源代码之前需要编译他们。.net中编译分为两个阶段:(1)把源代码编译为Microsoft中间语言(IL).(2)CLR把IL编译为平台专用的代码。它与Java字节码是同一中理念,可以快速的转换成本地机器码,这种精心的设计 阅读全文

posted @ 2013-11-05 16:36 wp456 阅读(225) 评论(0) 推荐(0)

不同颜色,不同字体,带链接的TextView和CheckedTextView
摘要: 阅读全文

posted @ 2013-11-01 23:31 wp456 阅读(642) 评论(0) 推荐(0)

导航