在C#中类,结构,接口,枚举及嵌套类型等的默认访问修饰符及其成员默认访问修饰符分别是什么?
2个回答
展开全部
举例来说明比较明了:
namespace AAA
{
class MyClass
{
int a;
}
struct MyStruct
{
int b;
}
enum MyEnum
{
E1,
E2
}
interface MyInterface
{
int x=5;
void MyFunction();
}
}
这个例子里,MyClass,MyStruct,MyEnum,MyInterface都是用的默认访问修饰符,各自内部的成员也使用的默认访问修饰符,下面来说明各自的访问权限:
1,对于 类,结构,枚举,接口这4种东西,如果用了默认访问修饰符,则相当于使用了internal关键字作为访问修饰符,具体就是只能在声明这个类(结构,结构,枚举,接口)的名字空间下使用,比如对于上面的例子,MyClass只能出现在AAA名字空间里,如果有一个名字空间BBB,则在BBB下是访问不到MyClass的
2,对于类,结构内部,默认访问修饰符的含义等价于private,比如上面的例子里MyClass里的字段a在AAA名字空间下其他的类里是无法访问的,同理的还有MyStruct里的b
3,对于枚举,接口内部,默认访问修饰符等价于public
namespace AAA
{
class MyClass
{
int a;
}
struct MyStruct
{
int b;
}
enum MyEnum
{
E1,
E2
}
interface MyInterface
{
int x=5;
void MyFunction();
}
}
这个例子里,MyClass,MyStruct,MyEnum,MyInterface都是用的默认访问修饰符,各自内部的成员也使用的默认访问修饰符,下面来说明各自的访问权限:
1,对于 类,结构,枚举,接口这4种东西,如果用了默认访问修饰符,则相当于使用了internal关键字作为访问修饰符,具体就是只能在声明这个类(结构,结构,枚举,接口)的名字空间下使用,比如对于上面的例子,MyClass只能出现在AAA名字空间里,如果有一个名字空间BBB,则在BBB下是访问不到MyClass的
2,对于类,结构内部,默认访问修饰符的含义等价于private,比如上面的例子里MyClass里的字段a在AAA名字空间下其他的类里是无法访问的,同理的还有MyStruct里的b
3,对于枚举,接口内部,默认访问修饰符等价于public
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询