我可以访问课外的内部变量吗?
如果我有internal
这样的变量:
Class Example
{
internal string CommonHome = "C:/myfile/";
}
如何从班级或其他班级之外访问此CommonHome
?
有什么方法可以访问它吗?
答案 0 :(得分:3)
内部变量只能在当前的dll中访问。
你可以看一下msdn for this => link
以下是一些代码片段。
public class BaseClass
{
internal static int intM = 0;
}
public class TestAccess
{
static void Main()
{
BaseClass myBase = new BaseClass(); // Ok.
BaseClass.intM = 444; // CS0117
}
}
答案 1 :(得分:2)
您可以访问在其他类中声明它们的程序集中的internal
成员。由于您的inter数据成员是实例成员,因此您需要在要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/";
}
}
internal关键字是类型和类型成员的访问修饰符。 内部类型或成员只能在同一文件中访问 汇编,MSDN。
您可以阅读有关访问修饰符here的更多信息。