Type.IsNotPublic Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает значение, позволяющее определить, не был ли объект Type объявлен как открытый.
public:
property bool IsNotPublic { bool get(); };
public bool IsNotPublic { get; }
member this.IsNotPublic : bool
Public ReadOnly Property IsNotPublic As Boolean
Значение свойства
Значение true
, если объект Type не объявлен как открытый и не является вложенным типом; в противном случае — значение false
.
Реализации
Примеры
В этом примере свойство используется IsNotPublic
для получения видимости типа.
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
open System
// Get the Type and MemberInfo.
let t = Type.GetType "System.IO.File"
let members = t.GetMembers()
// Get and display the DeclaringType method.
printfn $"\nThere are {members.Length} members in {t.FullName}."
printfn $"Is {t.FullName} non-public? {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
В следующем примере кода показано, почему нельзя использовать IsPublic
и IsNotPublic
для вложенных классов.
public ref class A
{
public:
ref class B{};
private:
ref class C{};
};
public class A
{
public class B { }
private class C { }
}
module A =
type B() = class end
type C() = class end
Public Class A
Public Class B
End Class
Private Class C
End Class
End Class
Для вложенных IsPublic
классов игнорируйте результаты и IsNotPublic
и обращайте внимание только на результаты IsNestedPublic
и IsNestedPrivate
. Выходные данные отражения для этого фрагмента кода будут следующими:
Класс | IsNotPublic | IsPublic | IsNestedPublic | IsNestedPrivate |
---|---|---|---|---|
Объект | FALSE | TRUE | FALSE | FALSE |
B | FALSE | FALSE | TRUE | FALSE |
C | FALSE | FALSE | FALSE | TRUE |
Комментарии
Не используйте это свойство со вложенными типами; вместо этого используйте IsNestedPublic свойство .
Если текущий Type объект представляет параметр типа универсального типа, это свойство возвращает .false