标签:style c class blog code tar
原文:【翻译】C#和.NET核心快速参考
PS:在网上看到的一篇C#总结,英文的,总结的还可以,都是基础知识,翻译给大家学习。文章结尾有英文原版。发布地址:http://www.cnblogs.com/zxlovenet/p/3745903.html
1.数据类型
| 类型名 | 大小 | 示例 | 
| String | 2字节/字符 | S=”reference”; | 
| Bool | 
 | b=true; | 
| char | 2字节 | ch=’a’; | 
| byte | 1字节 | b=0x78; | 
| short | 2字节 | lval=54; | 
| int | 4字节 | lval=540; | 
| long | 8字节 | lval=5400; | 
| float | 4字节 | val=54.0F; | 
| double | 8字节 | val=54.0D; | 
| decimal | 16字节 | val=54.0M; | 
2.数组
描述
| 1 2 3 4 | int[] numArray = {1903, 1907, 1910};int[] numArray = newint[3];// 3行2列int[ , ] nums = {{1907, 1990}, {1904, 1986}, {1910, 1980}}; | 
发布地址:http://www.cnblogs.com/zxlovenet/p/3745903.html
数组操作
| 1 2 3 4 5 6 7 8 9 10 11 | Array.Sort(numArray); // 升序排列// 排序开始在4位置,排序10个元素Array.Sort(numArray, 4, 10);// 使用一个数组作为键排序两个数组string[] values = {“Cary”, “Gary”, “Barbara”};string[] keys = {“Grant”, “Cooper”, “Stanwyck”};Array.Sort(keys, values);// 清除数组中的元素(数组元素, 第一个元素, 元素长度)Array.Clear(numArray, 0, numArray.Length);// 拷贝数组元素到另一个数组Array.Copy(src, target, numelements); | 
3.字符串操作
| 方法 | 描述 | 
| Compare | String.Compare(stra,strb,case,ci) case(布尔类型)true为不区分大小写 ci – new CultureInfo(“en-US”) 返回结果: <0 if a<b, 0 if a=b, 1 if a>b | 
| IndexOf | Str.IndexOf(val,start,num) Val – 要搜索的字符串 Start – 搜索字符串开始的位置 Num – 搜索的长度 | 
| LastIndexOf | 从字符串的结尾开始搜索 | 
| Split | Char[] delim = {‘’,’,’}; string w = “Kim, Joanna Leslie”; //创建有三个名字的字符串数组 String[] names = w.Split(delim); | 
| Substring | Mystring.Substring(ndx,len) String alpha = “abcdef”; //返回”cdef” String s = alpha.Substring(2); //返回”de” S = alpha.Substring(3,2); | 
| ToCharArray | 被选中的字符作为字符串转换成字符数组 String vowel = “aeiou”; //创建5个元素的数组 Char[] c = vowel.ToCharArray(); //创建’i’和’o’的数组 Char[] c= vowel.ToCharArray(2,2); | 
| RePlace | Newstr = oldstr.Replace(“old”,”new”); | 
发布地址:http://www.cnblogs.com/zxlovenet/p/3745903.html
4.System.Text.StringBuilder
创建
| 1 2 3 | StringBuilder sb=newStringBuilder();StringBuilder sb=newStringBuilder(mystring);StringBuilder sb=newStringBuilder(mystring,capacity); | 
Mystring - 对象的初始值
Capacity – 缓冲区初始大小(字节)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | Using StringBuilderMembersdecimalbmi = 22.2M;intwt=168;StringBuilder sb = newStringBuilder(“My weight is”);sb = sb.Append(wt); // 可以追加数量sb= sb.Append(“ and my bmi is”).Append(bmi);// 我的重量是 168 ,我的bmi(身体质量指数)指数是 22.2sb= sb.Replace(“22.2”,”22.4”);strings = sb.ToString();// 清除并设置新值sb.Length=0;sb.Append(“Xanadu”); | 
5. DateTime 和 TimeSpan
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | DateTime ConstructorDateTime(yr, mo, day)DateTime(yr, mo, day, hr, min, sec) DateTime bday = newDateTime(1964,12,20,11,2,0);DateTime newyr = DateTime.Parse(“1/1/2005”);DateTime currdt = DateTime.Now;// also AddHours, AddMonths, AddYearsDateTime tomorrow = currdt.AddDays(1);TimeSpan diff = currdt.Subtract(bday);//从12/20/64 到 6/24/05 14795 天Console.WriteLine(“{0}”, diff.Days); // TimeSpan(hrs, min, sec)TimeSpan ts = newTimeSpan(6, 30, 10);// also FromMinutes, FromHours, FromDaysTimeSpan ts = TimeSpan.FromSeconds(120);TimeSpan ts = ts2 – ts1;  // +,-,>,<,==, !=   | 
发布地址:http://www.cnblogs.com/zxlovenet/p/3745903.html
6.格式化数字和日期值
格式项语法: {index[,alignment] [:format string]}
index – 格式化作用于列表中选定的元素。
alignment – 用最小的宽度(字符)来表示值。
format string – 包含指定要显示格式的代码
例子:String.Format(“价格是: {0:C2}”, 49.95); //输出:价格是: $ 49.95
a.数字格式
| 格式说明符 | 模式 | 值 | 描述 | 
| C 或 c | {0:C2}, 1388.55 | $ 13888.55 | 货币 | 
| D 或 d | {0:D5}, 45 | 00045 | 必须是整数值 | 
| E 或 e | {0,9:E2},1388.55 | 139+E003 | 必须是浮点数 | 
| F 或 f | {0,9:F2},1388.55 | 1388.55 | 定点表示 | 
| N 或 n | {0,9:N1},1388.55 | 1,388.6 | 
 | 
| P 或 p | {0,9:P3},.7865 | 78.650% | 
 | 
| R 或 r | {0,9:R},3.14159 | 3.14159 | 
 | 
| X 或 x | {0,9:X4},31 | 001f | 
 | 
示例:
| 1 2 | CultureInfo ci = newCultureInfo("de-DE"); // 德国文化stringcurdt = String.Format(ci,"{0:M}",DateTime.Now); // 29 Juni | 
b. 时间格式:(2005年1月19日16:05:20)的美国格式值
| 格式 | 显示值 | 格式 | 显示值 | 
| d | 1/19/2005 | Y or y | January,25 | 
| D | Wednesday,January 19,2005 | t | 4:05 PM | 
| f | Wednesday,January 19,2005 4:05:20 PM | T | 4:05:20 PM | 
| F | Wednesday,January 19,2005 4:05 PM | s | 2005-01-19T16:05:20 | 
| g | 1/19/2005 4:05 PM | u | 2005-01-19 16:05:20Z | 
| G | 1/19/2005 4:05:20 PM | U | Wednesday, January 19, 2005 21:05:20PM | 
| M or m | January 19 | 
 | 
 | 
发布地址:http://www.cnblogs.com/zxlovenet/p/3745903.html
7. 使用 System.Text.RegularExpressions.Regex 类
| 1 2 3 4 5 6 | stringzipexp = @"\d{5}((-|\s)?\d{4})?$";stringaddr="W.44th St, New York, NY 10017-0233";Match m = Regex.Match(addr,zipexp); //静态方法Regex zipRegex= newRegex(zipexp);m= zipRegex.Match(addr); // 使用正则表达式对象Console.WriteLine(m.Value); // 10017-0233 | 
| 模式 | 描述 | 范例 | 
| + | 匹配一个或多个 | ab+c 匹配 abc,abbc | 
| * | 匹配零个或多个 | ab*c 匹配 ac,abbc | 
| ? | 匹配零个或一个 | ab?c 匹配 ac,abc | 
| \d \D | 匹配十进制数字或非数字(\D) | \d\d 匹配 01,55 | 
| \w \D | 匹配任何单字符或非字符 | \w 等价于 [a-zA-Z0-9_] | 
| \s \S | 匹配空白或非空白 | \d*\s\d+ 匹配 246 98 | 
| [ ] | 匹配任何设置的字符 | [aeiou]n 匹配 in,on | 
| [^ ] | 匹配没有设置的字符 | [^aeiou] 匹配 r 或 2 | 
| a | b | a或者b | jpg|jpeg|gif 匹配 .jpg | 
| \n \r \t | 换行,回车,制表 | 
 | 
8.在命令行中使用C#编译器
C:\> csc /t:library /out:reslib.dll mysource.cs
csc /t:winexe /r:ctls1.dll /r:ctls2.dll winapp.cs
csc /keyfile:strongkey.snk secure.cs
| 设置 | 描述 | 
| / addmodule | 从一个执行文件中导入元数据,不包含manifest。 | 
| / debug | 告诉编译器生成调试信息。 | 
| / doc | 指定一个XML文档文件,在编译过程中创建。 | 
| / keyfile | 指定用于包含文件密钥,创建一个强命名程序集。 | 
| / lib | 指定目录中搜索,外部引用的程序集。 | 
| / out | 编译输出文件的名称。 | 
| /reference (/r) | 引用外部程序集。 | 
| /resource | 资源文件在输出中嵌入。 | 
| /target (/t) | /t:exe /t:library /t:module /t:winexe | 
发布地址:http://www.cnblogs.com/zxlovenet/p/3745903.html
9.C#语言基础
| 控制流语句 | |
| switch (表达式) { case 表达式: // 语句 break / goto / return() case ... default: // 语句 break / goto / return() } 表达式可以是 整形、字符串或枚举类型。 | switch (类型) { case “vhs”: price= 10.00M; break; case “dvd”: price=16.00M; break; default: price=12.00M: break; } | 
| if (条件) { // 语句 } else { // 语句 } | if (genre==”vhs”) price=10.00M; else if (genre==”dvd”) price=16.00M; else price=12.00M; | 
| 循环结构 | |
| while (条件) { body } do { body } while (条件); | while ( ct < 8) { tot += ct; ct++; } do { tot += ct; ct++;} while (ct < 8); | 
| 循环结构(续) | |
| for (初始值;终止条件;迭代;) { // 语句 } foreach (类型 变量名 in 集合) { // 语句 } | for (int i=0;i<8;i++) { tot += i; } int[] ages = {27, 33, 44}; foreach(int age in ages) { tot += age; } | 
10.C#类定义
| 类 | 
| [public | protected | internal | private] [abstract | sealed | static] class 类名 [:继承类/接口] | 
| 构造函数 | 
| [修饰符权限] 类名 (参数) [:initializer] initializer –在基类中调用基构造函数。 这就要求在类的构造函数。 public class Shirt: Apparel { public Shirt(decimal p, string v) : base(p,v) { constructor body } | 
| 方法 | 
| [修饰符权限] [static | virtual | override | new | sealed | abstract ] 方法名 ( 参数列表) { 主体 } virtual –方法可以在子类中被覆盖。 override –在重写基类的虚方法。 new –在基类中隐藏了非虚拟方法。 sealed –防止派生类继承。 abstract –必须由子类实现。 传递参数: a. 默认情况下,参数是按值传递。 b. ref和out修饰符:通过引用传递 string id= “gm”; // 调用者初始化ref int weight; // 被调用方法初始化 GetFactor(ref id, out weight); // ... 其它代码 static void GetFactor(ref string id, out int wt) { if (id==”gm”) wt = 454; else wt=1; return; } Prope | 
| 属性 | 
| [修饰符] <数据类型> 属性名称{ public string VendorName { get { return vendorName; } set { vendorName = value; } } | 
11. 委托和事件
委托
[修饰符] delegate 返回值类型 委托名称 ([参数列表]);
| 1 2 3 4 5 6 7 8 9 10 | // (1) 定义一个委托调用方法(S)具有单个字符串参数publicdelegatevoidStringPrinter(strings);// (2) 注册方法通过委托调用StringPrinter prt = newStringPrinter(PrintLower);prt += newStringPrinter(PrintUpper);prt(“Copyright was obtained in2005”); / /执行PrintLower和PrintUpper使用匿名方法与委托,而不是调用一个方法,委托封装的代码被执行:prt = delegate(strings) { Console.WriteLine(s.ToLower()); };prt += delegate(strings) { Console.WriteLine(s.ToUpper()); };prt(“Print thisinlower and upper case.”); | 
事件
| 1 2 3 4 5 | // class.event += new delegate(event handler method);Button Total = newButton();Total.Click += newEventHandler(GetTotal);//事件处理程序方法必须已经指定由委托签名privatevoidGetTotal( objectsender, EventArgs e) {} | 
常用的控件事件
| 事件 | 委托 | 
| Click, MouseEnter DoubleClick, MouseLeave | EventHandler( object sender, EventArgs e) | 
| MouseDown, Mouseup, MouseMove | MouseEventHandler(object sender,MouseEventArgs e) e.X, e.Y – x和y坐标 e.Button – MouseButton.Left, Middle, Right | 
| KeyUp, KeyDown | KeyEventHandler(object sndr, KeyEventArgs e) e.Handled –表示事件是否被处理。 e.KeyCode –Keys枚举,例如,Keys.V e.Modifiers –表示如果Alt键,Ctrl或Shift键。 | 
| KeyPress | KeyPressEventHandler(object sender,KeyPressEventArgs e) | 
12. 结构体
[属性][修饰符] 结构体名称 [:接口] { 结构体主体}
与类的区别:
1.是值类型?不能从一个类继承或继承
2.字段不能有初始值设定?显式构造函数必须有一个参数
13. 枚举 (被枚举的类型)
| 枚举 | 枚举操作 | 
| e num Fabric: int { cotton = 1, silk = 2, wool = 4, rayon = 8 } | int cotNum = (int) Fabric.cotton; // 1 string cotName = Fabric.cotton.ToString(); // cotton string s = Enum.GetName(typeof(Fabric),2); // silk //创建wool枚举实例,如果它是有效的 if(Enum.IsDefined(typeof(Fabric), “wool”) Fabric woolFab = (Fabric)Enum.Parse(typeof(Fabric),”wool”); | 
源文件:http://files.cnblogs.com/zxlovenet/ccnaqr.pdf
【翻译】C#和.NET核心快速参考,布布扣,bubuko.com
标签:style c class blog code tar
原文地址:http://www.cnblogs.com/lonelyxmas/p/3746435.html