• 【翻译】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.数组

    描述

    int[] numArray = {1903, 1907, 1910};
    int[] numArray = new int[3];
    // 3行2列
    int[ , ] nums = {{1907, 1990}, {1904, 1986}, {1910, 1980}};
    

     发布地址:http://www.cnblogs.com/zxlovenet/p/3745903.html

    数组操作

    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

    创建

    StringBuilder sb=new StringBuilder();
    StringBuilder sb=new StringBuilder(mystring);
    StringBuilder sb=new StringBuilder(mystring,capacity);
    

    Mystring - 对象的初始值

    Capacity – 缓冲区初始大小(字节)

    Using StringBuilderMembers
    decimal bmi = 22.2M;
    int wt=168;
    StringBuilder sb = new StringBuilder(“My weight is ”);
    sb = sb.Append(wt); 
    // 可以追加数量
    sb= sb.Append(“ and my bmi is ”).Append(bmi);
    // 我的重量是 168 ,我的bmi(身体质量指数)指数是 22.2
    sb= sb.Replace(“22.2”,”22.4”);
    string s = sb.ToString();
    // 清除并设置新值
    sb.Length=0;
    sb.Append(“Xanadu”);
    

    5. DateTime 和 TimeSpan

    DateTime Constructor
    DateTime(yr, mo, day)
    DateTime(yr, mo, day, hr, min, sec)
     
    DateTime bday = new DateTime(1964,12,20,11,2,0);
    DateTime newyr = DateTime.Parse(“1/1/2005”);
    DateTime currdt = DateTime.Now;
    // also AddHours, AddMonths, AddYears
    DateTime 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 = new TimeSpan(6, 30, 10);
    // also FromMinutes, FromHours, FromDays
    TimeSpan 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

     

    示例:

    CultureInfo ci = new CultureInfo("de-DE"); // 德国文化
    string curdt = 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 类

    string zipexp = @"d{5}((-|s)?d{4})?$";
    string addr="W.44th St, New York, NY 10017-0233";
    Match m = Regex.Match(addr,zipexp); //静态方法
    Regex zipRegex= new Regex(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)

    dd 匹配 01,55

    w  D

    匹配任何单字符或非字符

    w 等价于 [a-zA-Z0-9_]

    s  S

    匹配空白或非空白

    d*sd+ 匹配 246 98

    [  ]

    匹配任何设置的字符

    [aeiou]n 匹配 in,on

    [^ ]

    匹配没有设置的字符

    [^aeiou] 匹配 r 或 2

    a | b

    a或者b

    jpg|jpeg|gif 匹配 .jpg

    换行,回车,制表

     

    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) 定义一个委托调用方法(S)具有单个字符串参数
    public delegate void StringPrinter(string s);
    // (2) 注册方法通过委托调用
    StringPrinter prt = new StringPrinter(PrintLower);
    prt += new StringPrinter(PrintUpper);
    prt(“Copyright was obtained in 2005”); / /执行PrintLower和PrintUpper
    使用匿名方法与委托,而不是调用一个方法,委托封装的代码被执行:
    prt = delegate(string s) { Console.WriteLine(s.ToLower()); };
    prt += delegate(string s) { Console.WriteLine(s.ToUpper()); };
    prt(“Print this in lower and upper case.”);
    

    事件

    // class.event += new delegate(event handler method);
    Button Total = new Button();
    Total.Click += new EventHandler(GetTotal);
    //事件处理程序方法必须已经指定由委托签名
    private void GetTotal( object sender, 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

  • 相关阅读:
    001-进程与线程
    mysql优化(11)
    mysql优化(十)
    mysql优化(九)
    mysql优化(八)
    mysql优化(七)
    mysql优化(六)
    mysql优化(五)
    mysql优化(四)
    mysql优化(二)
  • 原文地址:https://www.cnblogs.com/zxlovenet/p/3745903.html
Copyright © 2020-2023  润新知