程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 【翻譯】C#和.NET核心快速參考

【翻譯】C#和.NET核心快速參考

編輯:C#入門知識

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)

\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) 定義一個委托調用方法(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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved