Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Type.IsPublic和Type.IsVisible之间有什么区别_C#_Reflection_Clr - Fatal编程技术网

C# Type.IsPublic和Type.IsVisible之间有什么区别

C# Type.IsPublic和Type.IsVisible之间有什么区别,c#,reflection,clr,C#,Reflection,Clr,在C#中,类型类实例有很多属性。其中两个是IsPublic和IsVisible: -获取一个值,该值指示该类型是否声明为公共类型 -获取一个值,该值指示类型是否可由程序集外部的代码访问 据我所知,所有公共成员都可以在大会之外访问,而所有其他成员都不能。我能想到的两个例外是[InternalsVisibleTo:程序集属性和成员的受保护的修饰符 但是无论如何这两个属性之间的区别是什么?您发布的链接解释了这一点: 返回 如果类型声明为公共且不是嵌套类型,则为true; 否则,错误 返回 如果当前

在C#中,
类型
类实例有很多属性。其中两个是
IsPublic
IsVisible

  • -获取一个值,该值指示该类型是否声明为公共类型
  • -获取一个值,该值指示类型是否可由程序集外部的代码访问
据我所知,所有公共成员都可以在大会之外访问,而所有其他成员都不能。我能想到的两个例外是
[InternalsVisibleTo:
程序集属性和成员的
受保护的
修饰符


但是无论如何这两个属性之间的区别是什么?

您发布的链接解释了这一点:

返回

如果类型声明为公共且不是嵌套类型,则为true; 否则,错误

返回

如果当前类型是公共类型或公共嵌套类型(如 所有封闭类型都是公共的;否则,错误


你读过msdn的评论吗?不要与嵌套类型一起使用;对于
IsPublic
,使用IsNestedPublic是不言自明的。因此,主要区别似乎在于嵌套类型。