Type.IsNotPublic Type.IsNotPublic Type.IsNotPublic Type.IsNotPublic Property


取得值,指出 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和結果的注意IsNestedPublicIsNestedPrivateFor 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表示的類型參數的泛型型別,這個屬性會傳回falseIf the current Type represents a type parameter of a generic type, this property returns false.