熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

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

2022-06-13   來源: .NET編程 

  一判斷文件或文件夾是否存在

  使用SystemIOFile要檢查一個文件是否存在非常簡單
  bool exist = SystemIOFileExists(fileName);

  如果需要判斷目錄(文件夾)是否存在可以使用SystemIODirectory
  bool exist = SystemIODirectoryExists(folderName);

  二使用delegate類型設計自定義事件

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

  例子 // 定義Delegate類型約束事件程序的參數
  public delegate void MyEventHandler(object sender long lineNumber) ;
  public class DataImports
  {
   // 定義新事件NewLineRead
   public event MyEventHandler NewLineRead ;
   public void ImportData()
   {
    long i = ; // 事件參數
    while()
    {
     i++ ;
     // 觸發事件
     if( NewLineRead != null ) NewLineRead(this i);
     //
    }
    //
   }
   //
  }

  // 以下為Client代碼

  private void CallMethod()
  {
   // 聲明Class變量不需要WithEvents
   private DataImports _da = null;
   // 指定事件處理程序
   _daNewLineRead += new MyEventHandler(thisDA_EnterNewLine) ;
   // 調用Class方法途中會觸發事件
   _daImportData();
  }
  // 事件處理程序
  private void DA_EnterNewLine(object sender long lineNumber)
  {
   //
  }

  三IP與主機名解析

  使用SystemNet可以實現與Ping命令行類似的IP解析功能例如將主機名解析為IP或者反過來

  private string GetHostNameByIP(string ipAddress)
  {
   IPHostEntry hostInfo = DnsGetHostByAddress(ipAddress);
   return hostInfoHostName;
  }
  private string GetIPByHostName(string hostName)
  {
   SystemNetIPHostEntry hostInfo = DnsGetHostByName(hostName);
   return hostInfoAddressList[]ToString();
  }


From:http://tw.wingwit.com/Article/program/net/201311/14671.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.