Type.IsNotPublic Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém um valor que indica se o Type não está declarado como público.
public:
property bool IsNotPublic { bool get(); };
public bool IsNotPublic { get; }
member this.IsNotPublic : bool
Public ReadOnly Property IsNotPublic As Boolean
Valor da propriedade
true
se o Type não for declarado público e não for um tipo aninhado; caso contrário, false
.
Implementações
Exemplos
Este exemplo usa a IsNotPublic
propriedade para obter a visibilidade do tipo.
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
O exemplo de código a seguir demonstra por que você não pode usar IsPublic
e IsNotPublic
para classes aninhadas.
public ref class A
{
public:
ref class B{};
private:
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
Para classes aninhadas, ignore os resultados de IsPublic
e e preste atenção apenas aos resultados de e IsNotPublic
IsNestedPublic
IsNestedPrivate
. A saída de reflexão para esse fragmento de código seria a seguinte:
Classe | Isnotpublic | IsPublic | Isnestedpublic | Isnestedprivate |
---|---|---|---|---|
Um | FALSE | TRUE | FALSE | FALSE |
B | FALSE | FALSE | TRUE | FALSE |
C | FALSE | FALSE | FALSE | TRUE |
Comentários
Não use essa propriedade com tipos aninhados; use a IsNestedPublic propriedade em vez disso.
Se o atual Type representar um parâmetro de tipo de um tipo genérico, essa propriedade retornará false
.