读书人

不加任何访问修饰符的类作用域范围。该

发布时间: 2013-01-25 15:55:29 作者: rapoo

不加任何访问修饰符的类作用域范围。。
在定义类时,在class关键字前面不加任何访问修饰符,它的默认作用域范围是什么,不加访问修饰符和用private修饰有什么不同。在VS中如何看出来,谢谢!
[解决办法]
class有不加分身乏术修饰符
默认的就是private
[解决办法]
恩 默认是private
可以用来看reflector来看

    class DefaultClass
{

}


reflector:
.class private auto ansi beforefieldinit DefaultClass
extends [mscorlib]System.Object
{
.method public hidebysig specialname rtspecialname instance void .ctor() cil managed
{
}

}



[解决办法]
引用:
恩 默认是private
可以用来看reflector来看

C# code
class DefaultClass
{

}


你可以自己试一下能不能这样写

namespace abc
{
private class DefaultClass
{

}
}


应该这样才是


namespace abc
{
class DefaultClass //默认是internal
{
class privateClass //默认是private
{
}
}
}

类的内部成员默认私有,其他任何默认为internal
[解决办法]
private
[解决办法]
引用:
reflector:

C# code
.class private auto ansi beforefieldinit DefaultClass
extends [mscorlib]System.Object……

另外,这个是IL代码,不是reflector,用reflect你就能看到下面这个了


namespace abc
{
internal class DefaultClass
{

}
}



至于IL代码,不熟悉,为什么会显示private,不敢妄言,留待楼下解释
[解决办法]
嗯,对的,不加就是默认private访问修饰符
[解决办法]
类,不加修饰符就是 默认这个 internal


这个就是应用程序集内有效。
[解决办法]
默认是程序集范围内可访问。即带有internal修饰符

读书人网 >C#

热点推荐