2015-02-06 48 views
-1

我可以訪問類之外的內部變量嗎?如何訪問類之外的內部變量?

如果我有一個internal變量是這樣的:

Class Example  
{ 
    internal string CommonHome = "C:/myfile/"; 
} 

如何從類或其他類外部訪問此CommonHome

有什麼可能的方式來訪問它?

+2

[內部與私有訪問修飾符(http://stackoverflow.com/questions/3813485/internal-vs-private-access-modifiers) – 2015-02-06 05:29:39

+3

你爲什麼標記,如果你想它內部的可能重複暴露在外面 – 2015-02-06 05:30:27

回答

2

您可以訪問您在其他類中聲明它們的程序集中的internal成員。由於您的內部數據成員是實例成員,你需要在一個類來創建實例的情況下,你想CommonHome

Example ex = new Example(); 
string s = ex.CommonHome; 

你可能需要給類型的CommonHome這是我猜

Class Example 
{  
    internal string CommonHome = "C:/myfile/";  
} 

您最好使用CommonHome的屬性代替公共數據成員,因爲您可能需要稍後對此應用一些業務規則。這是一個非常好的帖子,關於屬性,Why Properties Matte r。

Class Example 
{  
    internal string CommonHome { get; set; } 
    internal Example() 
    { 
     CommonHome = "C:/myfile/"; 
    } 
} 

內部關鍵字是類型和類型成員的訪問修飾符。 內部類型或成員只能在同一個 程序集的文件中訪問,MSDN

你可以閱讀更多關於訪問修飾符here

3

內部變量只能在當前的dll中訪問。

你可以看一下MSDN上有關此=>link

下面是從那裏一些代碼片斷。

public class BaseClass 
{ 
    internal static int intM = 0; 
} 

public class TestAccess 
{ 
    static void Main() 
    { 
     BaseClass myBase = new BaseClass(); // Ok. 
     BaseClass.intM = 444; // CS0117 
    } 
}