聲明類型時,最重要的是查看該類型是否必須"至少"與其他成員或類型"具有同樣的可訪問性"。例如,直接基類必須至少與派生類具有同樣的可訪問性。以下聲明將導致編譯器錯誤,因爲基類 BaseClass 的可訪問性小於 MyClass:
class BaseClass {...} public class MyClass: BaseClass {...} // Error |
下表彙總了對使用聲明的可訪問性級別的限制。
上下文 | 備註 |
類 | 類類型的直接基類必須至少與類類型本身具有同樣的可訪問性。 |
接口 | 接口類型的顯式基接口必須至少與接口類型本身具有同樣的可訪問性。 |
委託 | 委託類型的返回類型和參數類型必須至少與委託類型本身具有同樣的可訪問性。 |
常數 | 常數的類型必須至少與常數本身具有同樣的可訪問性。 |
字段 | 字段的類型必須與至少字段本身具有同樣的可訪問性。 |
方法 | 方法的返回類型和參數類型必須至少與方法本身具有同樣的可訪問性。 |
屬性 | 屬性的類型必須至少與屬性本身具有同樣的可訪問性。 |
事件 | 事件的類型必須至少與事件本身具有同樣的可訪問性。 |
索引器 | 索引器的類型和參數類型必須至少與索引器本身具有同樣的可訪問性。 |
運算符 | 運算符的返回類型和參數類型必須至少與運算符本身具有同樣的可訪問性。 |
構造函數 | 構造函數的參數類型必須至少與構造函數本身具有同樣的可訪問性。 |
示例:以下示例包含不同類型的錯誤聲明。每個聲明後的註釋指示了預期的編譯器錯誤。
using System ; |