程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#接話柄現辦法實例剖析

C#接話柄現辦法實例剖析

編輯:C#入門知識

C#接話柄現辦法實例剖析。本站提示廣大學習愛好者:(C#接話柄現辦法實例剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是C#接話柄現辦法實例剖析正文


本文實例講述了C#接話柄現辦法。分享給年夜家供年夜家參考。詳細以下:

在講授C#完成接口的實例解析之前我們來看看C#接口的界說,假如一個類派生於一個接口,它就會履行某些函數。其實不是一切的面向對象說話都支撐接口,所以本節將具體引見C#完成接口的成績。

C#完成接口留意:

熟習COM的開辟人員應留意,雖然在概念上C#接口相似於COM接口,但它們是分歧的,底層的構造分歧,例如,C#接口其實不派生於IUnknown。C#接口依據.NET函數供給了一個契約。與COM接口分歧,C#接口不代表任何類型的二進制尺度。

上面列出Microsoft預界說的一個接口System.IDisposable的完全界說。IDisposable包括一個辦法Dispose(),該辦法由類履行,用於清算代碼:

public interface IDisposable
{
void Dispose();
}

下面的代碼解釋,聲明接口在語法上與聲明籠統類完整雷同,但不許可供給接口中任何成員的履行方法。普通情形下,接口中只能包括辦法、屬性、索引器和事宜的聲明。

C#完成接口中不克不及實例化接口,它只能包括其成員的簽名。接口不克不及有結構函數(若何構建不克不及實例化的對象)或字段(由於這隱含了某些外部的履行方法)。接口界說也不許可包括運算符重載,但這不是由於聲明它們在准繩上有甚麼成績,而是由於接口平日是公共契約,包括運算符重載會惹起一些與其他.NET 說話不兼容的成績,例如與VB.NET的不兼容,由於VB.NET不支撐運算符重載。

在接口界說中還不許可聲明成員上的潤飾符。接口成員老是公共的,不克不及聲明為虛擬或靜態。假如須要,就應由履行的類來聲明,是以最好經由過程履行的類來聲明拜訪潤飾符,就像下面的代碼那樣。

例如IDisposable。假如類願望聲明為公共類型,以便履行辦法Dispose(),該類就必需履行IDisposable。在C#中,這表現該類派生於IDisposable。

class SomeClass : IDisposable
{
// this class MUST contain an implementation of the
// IDisposable.Dispose() method, otherwise
// you get a compilation error
public void Dispose()
{
// implementation of Dispose() method
}
// rest of class
}

在這個例子中,假如SomeClass派生於IDisposable,但不包括與IDisposable中簽名雷同的Dispose()完成代碼,就會獲得一個編譯毛病,由於該類損壞了完成IDisposable的契約。固然,編譯器許可類有一個不派生於IDisposable的Dispose() 辦法。成績是其他代碼沒法辨認出SomeClass支撐IDisposable特征。

C#完成接口留意:

IDisposable是一個相當簡略的接口,它只界說了一個辦法。年夜多半接口都包括很多成員。

接口的另外一個例子是C#中的foreach輪回。現實上,foreach輪回的外部任務方法是查詢對象,看看它能否完成了 System.Collections.IEnumerable接口。假如是,C#編譯器就拔出IL代碼,應用這個接口上的辦法迭代聚集中的成員,不然,foreach就會激發一個異常。

願望本文所述對年夜家的C#法式設計有所贊助。

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