C#新手經(jīng)驗(yàn)點(diǎn)滴
對(duì)于從其它語(yǔ)言轉(zhuǎn)向C#的朋友來(lái)說(shuō),C#語(yǔ)言本身并不難。但對(duì)于一個(gè)C#新手,可能還是有些東東用不慣,可能主要是因?yàn)楹芏嘁郧霸谄渌Z(yǔ)言中能輕易找到或使用的東西,一時(shí)間不知如何使用。本文的目的,就是希望我的一點(diǎn)經(jīng)驗(yàn),對(duì)新上手的朋友有一點(diǎn)幫助。
一、VB中的一些函數(shù)
1、啟用外部程序,相當(dāng)于VB中的Shell
System.Diagnostics.Process.Start ();
2、Applicaiton.DoEvents()相當(dāng)于VB中的Doevents
3、當(dāng)前程序文件的路徑:Application.ExecutablePath
二、對(duì)文件名的操作
(1)System.IO.Path.GetDirectoryName(FileName) 返回路經(jīng) 。
如:GetDirectoryName("c:\test\tmp.txt") 返回 c:\test
(2)System.IO.Path.GetFileName(FileName) 返回不包含路的文件名。
如: GetFileName("c:\test\tmp.txt") 返回 tmp.txt
(3) System.IO.Path.GetExtension(FileName) 返回 后綴名。
如 :GetExtension("c:\test\tmp.txt")返回.txt
三、格式化字符串
下面內(nèi)容來(lái)自網(wǎng)上,作者不知。
可通過(guò) String.Format 方法或通過(guò) Console.Write 方法格式化數(shù)值結(jié)果,其中后一種方法調(diào)用 String.Format。使用格式字符串指定格式。下表包含受支持的標(biāo)準(zhǔn)格式字符串。格式字符串采用的形式為 Axx,其中 A 為“格式說(shuō)明符”,而 xx 為“精度說(shuō)明符”。格式說(shuō)明符控制應(yīng)用于數(shù)值的格式化類型,而精度說(shuō)明符控制格式化輸出的有效位數(shù)或小數(shù)位數(shù)。
| 字符 | 說(shuō)明 | 示例 | 輸出 |
|---|---|---|---|
| C 或 c | 貨幣 | Console.Write({0:C}, 2.5);
Console.Write({0:C}, -2.5); |
$2.50
($2.50) |
| D 或 d | 十進(jìn)制 | Console.Write({0:D5}, 25); | 00025 |
| E 或 e | 科學(xué)型 | Console.Write({0:E}, 250000); | 2.500000E+005 |
| F 或 f | 固定點(diǎn) | Console.Write({0:F2}, 25);
Console.Write({0:F0}, 25); |
25.00
25 |
| G 或 g | 常規(guī) | Console.Write({0:G}, 2.5); | 2.5 |
| N 或 n | 數(shù)字 | Console.Write({0:N}, 2500000); | 2,500,000.00 |
| X 或 x | 十六進(jìn)制 | Console.Write({0:X}, 250);
Console.Write({0:X}, 0xffff); |
FA
FFFF |
四、根據(jù)類名(字符串)創(chuàng)建類的對(duì)象實(shí)體
System.Type cls = System.Type.GetType("System.Windows.Forms.TextBox");
object obj = System.Activator.CreateInstance(cls);
這段代碼很簡(jiǎn)單,但適當(dāng)?shù)臅r(shí)候使用,可以發(fā)揮巨大的威力。
五、Treeview控件的操作
.net中Treeview控件的設(shè)計(jì)更加科學(xué),體現(xiàn)在以下兩點(diǎn):
1、節(jié)點(diǎn)集合在VB,VC或Delphi中,TreeView控件的節(jié)點(diǎn)集合表現(xiàn)出來(lái)只是列表,各節(jié)點(diǎn)通過(guò)一個(gè)key的對(duì)應(yīng)關(guān)系來(lái)確字節(jié)點(diǎn)之間的關(guān)系,使用起來(lái)也相當(dāng)麻煩。而在.net中,節(jié)點(diǎn)是真正以樹的形式進(jìn)行訪問的。TreeView控件有一個(gè)Nodes屬性,它是Node的集合,而Node對(duì)象包含一個(gè)Nodes屬性,從而形成了一個(gè)“節(jié)點(diǎn)樹”。下面遍歷TreeView控件中的所有節(jié)點(diǎn):
private void GetAllNode(System.Windows.Forms.TreeNodeCollection nodes)
{
foreach(System.Windows.Forms.TreeNode node in nodes)
{
Console.WriteLine(node.Text);
GetAllNode(node.nodes) //遞歸查找
}
}
真簡(jiǎn)單啊。
2、Tag屬性
在使用TreeView的過(guò)程中,往往需要給節(jié)點(diǎn)更多的附加信息。在VB中,只有一個(gè)字符串類型的Tag屬性可供使用,經(jīng)常不夠使用。在.net中,節(jié)點(diǎn)也有一個(gè)Tag屬性,但它的類型是object,這意味著我們可以將任意一種對(duì)象實(shí)體賦給該屬性,這無(wú)疑給我們的開發(fā)帶來(lái)了極大的方便。(在Delphi 中,也提供了這個(gè)特性)。
六、IsNumeric函數(shù)
C#中并未提供判斷一個(gè)字符串是否為數(shù)值類型的函數(shù),但可以利用正則表達(dá)式達(dá)到同樣的目的。下面的函數(shù)供參考:
public static bool IsNumeric(string str)
{
if(str != null && Regex.IsMatch(str,@"^[-]?\d+[.]?\d*$"))
return true;
else
return false;
}
七、C#中自定義事件
在C#中為一個(gè)類自定義事件,看起來(lái)比較麻煩,實(shí)戰(zhàn)起來(lái)是很簡(jiǎn)單的,只需經(jīng)過(guò)以下三個(gè)步驟:
1、定義一個(gè)代理:
public delegate void MyEvent(object sender);
注意代理與要使用該事件的類是“平級(jí)”的,所以它不能放在類里面。
參數(shù)的類型和個(gè)數(shù)可以根據(jù)需要自行更改。
2、定義一個(gè)event
public event MyEvent MyEventHandler;
該event的定義屬于類的成員
3、在需要激發(fā)事件的地方執(zhí)行上面定義的event
if (MyEventHandler != null)
MyEventHandler(sender);
完成。是不是真的很簡(jiǎn)單啊?
八、取得目錄下的所有文件
System.IO.Directory.GetFiles
posted on 2005-03-29 10:04 西西吹雪 閱讀(1896) 評(píng)論(0) 收藏 舉報(bào)
浙公網(wǎng)安備 33010602011771號(hào)