FieldInfo.IsPrivate Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает значение, указывающее, является ли поле закрытым.
public:
property bool IsPrivate { bool get(); };
public bool IsPrivate { get; }
member this.IsPrivate : bool
Public ReadOnly Property IsPrivate As Boolean
Значение свойства
Значение true
, если поле является закрытым; в противном случае — значение false
.
Реализации
Примеры
В следующем примере возвращается значение, указывающее, является ли поле класса закрытым.
using namespace System;
using namespace System::Reflection;
ref class MyClass
{
private:
String^ myField;
public:
array<String^>^myArray;
MyClass()
{
myField = "Microsoft";
array<String^>^s = {"New York","New Jersey"};
myArray = s;
}
property String^ GetField
{
String^ get()
{
return myField;
}
}
};
int main()
{
try
{
// Gets the type of MyClass.
Type^ myType = MyClass::typeid;
// Gets the field information of MyClass.
array<FieldInfo^>^myFields = myType->GetFields( static_cast<BindingFlags>(BindingFlags::NonPublic | BindingFlags::Public | BindingFlags::Instance) );
Console::WriteLine( "\nDisplaying whether the fields of {0} are private or not:\n", myType );
for ( int i = 0; i < myFields->Length; i++ )
{
// Check whether the field is private or not.
if ( myFields[ i ]->IsPrivate )
Console::WriteLine( " {0} is a private field.", myFields[ i ]->Name );
else
Console::WriteLine( " {0} is not a private field.", myFields[ i ]->Name );
}
}
catch ( Exception^ e )
{
Console::WriteLine( "Exception : {0} ", e->Message );
}
}
using System;
using System.Reflection;
class MyClass
{
private string myField;
public string[] myArray = new string[] {"New York", "New Jersey"};
MyClass()
{
myField = "Microsoft";
}
string GetField
{
get
{
return myField;
}
}
}
class FieldInfo_IsPrivate
{
public static void Main()
{
try
{
// Gets the type of MyClass.
Type myType = typeof(MyClass);
// Gets the field information of MyClass.
FieldInfo[] myFields = myType.GetFields(BindingFlags.NonPublic
|BindingFlags.Public
|BindingFlags.Instance);
Console.WriteLine("\nDisplaying whether the fields of {0} are private or not:\n", myType);
for(int i = 0; i < myFields.Length; i++)
{
// Check whether the field is private or not.
if(myFields[i].IsPrivate)
Console.WriteLine("{0} is a private field.", myFields[i].Name);
else
Console.WriteLine("{0} is not a private field.", myFields[i].Name);
}
}
catch(Exception e)
{
Console.WriteLine("Exception : {0} " , e.Message);
}
}
}
Imports System.Reflection
Class [MyClass]
Private myField As String
Public myArray() As String = {"New York", "New Jersey"}
Sub New()
myField = "Microsoft"
End Sub
ReadOnly Property GetField() As String
Get
Return myField
End Get
End Property
End Class
Class FieldInfo_IsPrivate
Public Shared Sub Main()
Try
' Gets the type of MyClass.
Dim myType As Type = GetType([MyClass])
' Gets the field information of MyClass.
Dim myFields As FieldInfo() = myType.GetFields((BindingFlags.NonPublic Or BindingFlags.Public Or BindingFlags.Instance))
Console.WriteLine(ControlChars.Cr & "Displaying whether the fields of {0} are private or not:" & ControlChars.Cr, myType)
Console.WriteLine()
Dim i As Integer
For i = 0 To myFields.Length - 1
' Check whether the field is private or not.
If myFields(i).IsPrivate Then
Console.WriteLine("{0} is a private field.", myFields(i).Name)
Else
Console.WriteLine("{0} is not a private field.", myFields(i).Name)
End If
Next i
Catch e As Exception
Console.WriteLine("Exception : {0} ", e.Message.ToString())
End Try
End Sub
End Class
Комментарии
Закрытые поля доступны только из функций-членов.
Свойство IsPrivate
задается при установке атрибута FieldAttributes.Private
.
Чтобы получить IsPrivate
свойство , сначала получите класс Type
.
Type
Из получите FieldInfo
.
FieldInfo
Из получите IsPrivate
свойство . Чтобы получить доступ к не открытому полю BindingFlags
NonPublic
, задайте для параметра значение и Static
либо в Instance
методе GetField
.