中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#編程技巧有哪些

發布時間:2021-12-01 11:01:16 來源:億速云 閱讀:109 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關C#編程技巧有哪些的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

C#編程技巧之一、最小化窗口

點擊“X”或“Alt+F4”時,最小化窗口,

如:

protected override void WndProc(ref Message m)  {  const int WM_SYSCOMMAND = 0x0112;  const int SC_CLOSE = 0xF060;  if (m.Msg == WM_SYSCOMMAND && (int) m.WParam == SC_CLOSE)  {  // User clicked close button  this.WindowState = FormWindowState.Minimized;  return;  }  base.WndProc(ref m);  }

C#編程技巧之二、如何讓Foreach 循環運行的更快

foreach是一個對集合中的元素進行簡單的枚舉及處理的現成語句,用法如下例所示:

using System;  using System.Collections;  namespace LoopTest  {  class Class1  {  static void Main(string[] args)  {  // create an ArrayList of strings  ArrayList array = new ArrayList();  array.Add("Marty");  array.Add("Bill");  array.Add("George");  // print the value of every item  foreach (string item in array)  {  Console.WriteLine(item);  }  }  }

你可以將foreach語句用在每個實現了Ienumerable接口的集合里。如果想了解更多foreach的用法,你可以查看.NET Framework SDK文檔中的C# Language Specification。

在編譯的時候,C#編輯器會對每一個foreach 區域進行轉換。

IEnumerator enumerator = array.GetEnumerator();  try   {  string item;  while (enumerator.MoveNext())   {  item = (string) enumerator.Current;  Console.WriteLine(item);  }  }  finally   {  IDisposable d = enumerator as IDisposable;  if (d != null) d.Dispose();  }

這說明在后臺,foreach的管理會給你的程序帶來一些增加系統開銷的額外代碼。

C#編程技巧之三、將圖片保存到一個XML文件

WinForm的資源文件中,將PictureBox的Image屬性等非文字內容都轉變成文本保存,這是通過序列化(Serialization)實現的,

例子:

using System.Runtime.Serialization.Formatters.Soap;  Stream stream = new FileStream("E:\\Image.XML",FileMode.Create,FileAccess.Write,FileShare.None);  SoapFormatter f = new SoapFormatter();  Image img = Image.FromFile("E:\\Image.bmp");  f.Serialize(stream,img);  stream.Close();

C#編程技巧之四、屏蔽CTRL-V

在WinForm中的TextBox控件沒有辦法屏蔽CTRL-V的剪貼板粘貼動作,如果需要一個輸入框,但是不希望用戶粘貼剪貼板的內容,可以改用RichTextBox控件,并且在KeyDown中屏蔽掉CTRL-V鍵,例子:

private void richTextBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)  {  if(e.Control && e.KeyCode==Keys.V)  e.Handled = true;  }

C#編程技巧之五、判斷文件或文件夾是否存在

使用System.IO.File,要檢查一個文件是否存在非常簡單:

bool exist = System.IO.File.Exists(fileName);

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

bool exist = System.IO.Directory.Exists(folderName);

C#編程技巧之六、使用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)  {  // ...  }

C#編程技巧之七、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();  }

感謝各位的閱讀!關于“C#編程技巧有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

庄浪县| 开化县| 仁布县| 博白县| 绥化市| 泉州市| 贺州市| 万安县| 微博| 麻江县| 奉节县| 竹溪县| 阜城县| 梁河县| 黎城县| 雷波县| 徐汇区| 大关县| 星座| 平远县| 盐源县| 兰州市| 青阳县| 玉山县| 乳山市| 长垣县| 蒲江县| 许昌市| 博罗县| 利津县| 长春市| 通化市| 南郑县| 嘉义市| 思茅市| 新兴县| 公主岭市| 威宁| 武城县| 葵青区| 湘乡市|