C#语言中的可访问性约束
??? C#語言中的許多結(jié)構(gòu)需要一種至少和一個(gè)成員或其它類型相同可訪問的類型。如果T 是M 可訪問性域的一個(gè)超集,那么類型T 就要求至少可和成員或類型M 一樣可訪問。換句話說,如果T 在所有M 可訪問的上下文中都可訪問,那么T 至少和M 一樣可訪問。
下面是一些可訪問性的約束:
一個(gè)類類型的直接基類必須至少同類類型本身同樣可訪問。
一個(gè)接口類型的外部基本接口必須至少同接口類型本身同樣可訪問。
代表類型的返回類型和參數(shù)類型必須至少同代表類型本身同樣可訪問。
常數(shù)的類型必須至少同常數(shù)本身同樣可訪問。
域的類型必須至少同域本身同樣可訪問。
一個(gè)方法的返回類型和參數(shù)類型必須至少同方法本身同樣可訪問。
屬性的類型必須至少同屬性本身同樣可訪問。
事件的類型必須至少同事件本身同樣可訪問。
參數(shù)的類型必須至少同索引本身同樣可訪問。
一個(gè)操作符的返回類型和參數(shù)類型必須至少同操作符本身同樣可訪問。
構(gòu)造函數(shù)的參數(shù)類型必須至少同構(gòu)造函數(shù)本身同樣可訪問。
看看這個(gè)例子:
????? class A {...}
????? public class B: A {...}
因?yàn)锳 不能與B 一樣可訪問,所以類比是有錯(cuò)誤的。
??? 同樣,在例子中
????? class A {...}
????? public class B
????? {
??????? A F() {...}
???????? internal A G() {...}
???????? public A H() {...}
????? }
??? 因?yàn)锳 不能與B 一樣可訪問,所以B 中的方法H 也是有錯(cuò)誤的。
轉(zhuǎn)載于:https://blog.51cto.com/5257890/902584
總結(jié)
以上是生活随笔為你收集整理的C#语言中的可访问性约束的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 史上最纯洁的女孩,看到我实在被雷到了。
- 下一篇: BGP community