程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 幾個C#編程的小技巧 (二)

幾個C#編程的小技巧 (二)

編輯:.NET實例教程

一、判斷文件或文件夾是否存在 
使用System.IO.File,要檢查一個文件是否存在非常簡單: 
bool exist = System.IO.File.Exists(fileName); 

如果需要判斷目錄(文件夾)是否存在,可以使用System.IO.Directory: 
bool exist = System.IO.Directory.Exists(folderName); 

二、使用delegate類型設計自定義事件 
在C#編程中,除了Method和Property,任何Class都可以有自己的事件(Event)。定義和使用自定義事件的步驟如下: 
(1)在Class之外定義一個delegate類型,用於確定事件程序的接口 
(2)在Class內部,聲明一個public event變量,類型為上一步驟定義的delegate類型 
(3)在某個Method或者Property內部某處,觸發事件 
(4)ClIEnt程序中使用+=操作符指定事件處理程序 


例子: // 定義Delegate類型,約束事件程序的參數 
public delegate void MyEventHandler(object sender, long lineNumber) ; 

public class DataImports 

// 定義新事件NewLineRead 
public event MyEventHandler NewLineRead ; 

public void ImportData() 

long i = 0 ; // 事件參數 
while() 

i++ ; 
// 觸發事件 
if( NewLineRead != null ) NewLineRead(this, i); 
//... 

//... 

//... 


// 以下為ClIEnt代碼 

private void CallMethod() 

// 聲明Class變量,不需要WithEvents 
private DataImports _da = null; 
// 指定事件處理程序 
_da.NewLineRead += new MyEventHandler(this.DA_EnterNewLine) ; 
// 調用Class方法,途中會觸發事件 
_da.ImportData(); 

// 事件處理程序 
private void DA_EnterNewLine(object sender, long lineNumber) 

// ... 



三、IP與主機名解析 
使用System.Net可以實現與Ping命令行類似的IP解析功能,例如將主機名解析為IP或者反過來: private string GetHostNameByIP(string ipAddress) 

IPHostEntry hostInfo = Dns.GetHostByAddress(ipAddress); 
return hostInfo.HostName; 

private string GetIPByHostName(string hostName) 

System.Net.IPHostEntry hostInfo = Dns.GetHostByName(hostName); 
return hostInfo.AddressList[0].ToString(); 


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