C 友元程式集

2022-01-17 14:52:18 字數 1131 閱讀 3155

c#中的訪問修飾符internal可以說是介於public和private之間,可以使型別在同程式集中可以被互相訪問。但有時會有這樣的需求,我們希望乙個程式集中的型別可以被外部的某些程式集可以訪問,這時當然不能設定成public,否則可以被所有的外部程式集訪問。要達到上述要求我們可以使用友元程式集。

下面用乙個簡單的例子來介紹下友元程式集。

1 在乙個解決方案中建立兩個類庫專案testa和testb,分別在兩個類庫專案中建立類a和類b。

2 在專案testa中新增對專案testb的引用。

3 將專案testb中的類b訪問級別設定為internal。

namespace testb

}

4 現在在testa專案的類a中是肯定不能訪問到類b的,如果想讓類a可以訪問類b,必須將專案testa的程式集新增為專案testb程式集的友元程式集。新增友元程式集我們要使用internalisvisibleto特性,使用該特性需要新增命名空間

using system.runtime.compilerservices。

5 在b類中使用internalisvisibleto特性將程式集testa新增為友元程式集。

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.runtime.compilerservices;

[assembly: internalsvisibleto("testa")]

namespace testb

}

6 internalisvisibleto特性也可以新增到assemblyinfo.cs中。

7 現在在專案testa的類a中就可以訪問testb專案的類b了。

友元 友元函式 友元類和友元成員函式 C

有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...

友元 友元函式 友元類和友元成員函式 C

有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...

C 友元 友元函式 友元類和友元成員函式

有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...