信息
您所需的主题如下所示。但此主题未包含在此库中。

Type.IsNotPublic 属性

2013/12/13

获取一个值,该值指示 Type 是否声明为公共类型。

Namespace:  System
程序集:  mscorlib(位于 mscorlib.dll 中)

public bool IsNotPublic { get; }

属性值

类型: System.Boolean
如果 Type 未声明为公共类型且不是嵌套类型,则为 true;否则为 false

不要使用嵌套类型,而应使用 IsNestedPublic

如果当前 Type 表示泛型类型的类型形参,则此属性返回 false

TypeAttributes.VisibilityMask 选择可见性特性。

本示例演示如何使用 IsNotPublic 获取类型的可见性。

说明注意:

要运行此示例,请参见生成具有静态 Windows Phone TextBlock 控件的示例


using System;
using System.IO;
using System.Reflection;
class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      outputBlock.Text += "\nReflection.MemberInfo" + "\n";
      //Get the Type and MemberInfo.
      Type MyType = Type.GetType("System.IO.File");
      MemberInfo[] Mymemberinfoarray = MyType.GetMembers();
      //Get and display the DeclaringType method.
      outputBlock.Text += String.Format("\nThere are {0} members in {1}.", Mymemberinfoarray.Length, MyType.FullName) + "\n";
      outputBlock.Text += String.Format("Is {0} nonpublic? {1}", MyType.FullName, MyType.IsNotPublic.ToString()) + "\n";
   }
}


这段代码产生以下输出:

There are 27 members in System.IO.File.
Is System.IO.File public? False 

下面的代码示例说明不能对嵌套类使用 IsPublicIsNotPublic 的原因。


public class A
{
   public class B { }
   private class C { }
}


对于嵌套类,忽略 IsPublicIsNotPublic 的结果,而只注意 IsNestedPublicIsNestedPrivate 的结果。此代码段的反射输出如下:

IsNotPublic

IsPublic

IsNestedPublic

IsNestedPrivate

A

FALSE

TRUE

FALSE

FALSE

B

FALSE

FALSE

TRUE

FALSE

C

FALSE

FALSE

FALSE

TRUE

Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示: