Type.IsNotPublic プロパティ


Type がパブリックとして宣言されていないかどうかを示す値を取得します。Gets a value indicating whether the Type is not declared public.

 property bool IsNotPublic { bool get(); };
public bool IsNotPublic { get; }
member this.IsNotPublic : bool
Public ReadOnly Property IsNotPublic As Boolean


true がパブリックとして宣言されていなくて、入れ子にされた型でない場合は Type。それ以外の場合は falsetrue if the Type is not declared public and is not a nested type; otherwise, false.


この例ではIsNotPublic 、プロパティを使用して、型の可視性を取得します。This example uses the IsNotPublic property to get the visibility of the type.

using namespace System;
using namespace System::IO;
using namespace System::Reflection;

int main()
   //Get the Type and MemberInfo.
   Type^ t = Type::GetType("System.IO.File");
   array<MemberInfo^>^ members = t->GetMembers();
   //Get and display the DeclaringType method.
   Console::WriteLine("There are {0} members in {1}.",
                      members->Length, t->FullName );
   Console::WriteLine("Is {0} non-public? {1}",
                      t->FullName, t->IsNotPublic );
// The example displays the following output:
//       There are 60 members in System.IO.File.
//       Is System.IO.File non-public? False
using System;
using System.IO;
using System.Reflection;

class Example
    public static void Main()
        // Get the Type and MemberInfo.
        Type t = Type.GetType("System.IO.File");
        MemberInfo[] members = t.GetMembers();
        // Get and display the DeclaringType method.
        Console.WriteLine("\nThere are {0} members in {1}.",
                          members.Length, t.FullName);
        Console.WriteLine("Is {0} non-public? {1}",
                          t.FullName, t.IsNotPublic);
// The example displays output like the following:
//       There are 60 members in System.IO.File.
//       Is System.IO.File non-public? False
Imports System.IO
Imports System.Reflection

Module Example
    Public Sub Main()
        'Get the Type and MemberInfo.
        Dim t As Type = Type.GetType("System.IO.File")
        Dim members As MemberInfo() = t.GetMembers()
        'Get and display the DeclaringType method.
        Console.WriteLine("There are {0} members in {1}.",
                          members.Length, t.FullName)
        Console.WriteLine("Is {0} non-public? {1}",
                          t.FullName, t.IsNotPublic)
    End Sub
End Module
' The example displays output like the following:
'       There are 60 members in System.IO.File.
'       Is System.IO.File non-public? False

次のコード例は、入れ子になっIsPublicIsNotPublicクラスでおよびを使用できない理由を示しています。The following code example demonstrates why you cannot use IsPublic and IsNotPublic for nested classes.

public ref class A
   ref class B{};

   ref class C{};


public class A 
    public class B { }
    private class C { }
Public Class A
    Public Class B
    End Class
    Private Class C
    End Class
End Class

入れ子になったクラスの場合はIsPublicIsNotPublicとの結果を無視し、とIsNestedPublic IsNestedPrivateの結果のみに注意してください。For nested classes, ignore the results of IsPublic and IsNotPublic and pay attention only to the results of IsNestedPublic and IsNestedPrivate. このコード片のリフレクション出力は次のようになります。The reflection output for this code fragment would be as follows:

クラスClass IsNotPublicIsNotPublic IsPublicIsPublic IsNestedPublicIsNestedPublic IsNestedPrivateIsNestedPrivate
AA falseFALSE trueTRUE falseFALSE falseFALSE
BB falseFALSE falseFALSE trueTRUE falseFALSE
CC falseFALSE falseFALSE falseFALSE trueTRUE


このプロパティは、入れ子にされた型では使用しないでください。代わりに、 IsNestedPublicプロパティを使用してください。Do not use this property with nested types; use the IsNestedPublic property instead.

現在Typeのがジェネリック型の型パラメーターを表している場合、このfalseプロパティはを返します。If the current Type represents a type parameter of a generic type, this property returns false.