FieldInfo.IsFamilyOrAssembly Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient une valeur indiquant si la visibilité potentielle de ce champ est décrite par FamORAssem, c'est-à-dire si le champ peut faire l'objet d'un accès par des classes dérivées où qu'elles se trouvent, et par des classes du même assembly.
public:
property bool IsFamilyOrAssembly { bool get(); };
public bool IsFamilyOrAssembly { get; }
member this.IsFamilyOrAssembly : bool
Public ReadOnly Property IsFamilyOrAssembly As Boolean
Valeur de propriété
true
si l'accès à ce champ est décrit exactement par FamORAssem ; sinon, false
.
Implémente
Exemples
L’exemple de code suivant définit des champs avec différents niveaux de visibilité et affiche les valeurs de leurs IsAssemblypropriétés , IsFamily, IsFamilyOrAssemblyet IsFamilyAndAssembly .
using namespace System;
using namespace System::Reflection;
public ref class Example
{
public:
int f_public;
internal:
int f_internal;
protected:
int f_protected;
protected public:
int f_protected_public;
protected private:
int f_protected_private;
};
void main()
{
Console::WriteLine("\n{0,-30}{1,-18}{2}", "", "IsAssembly", "IsFamilyOrAssembly");
Console::WriteLine("{0,-21}{1,-18}{2,-18}{3}\n",
"", "IsPublic", "IsFamily", "IsFamilyAndAssembly");
for each (FieldInfo^ f in Example::typeid->GetFields(
BindingFlags::Instance | BindingFlags::NonPublic | BindingFlags::Public))
{
Console::WriteLine("{0,-21}{1,-9}{2,-9}{3,-9}{4,-9}{5,-9}",
f->Name,
f->IsPublic,
f->IsAssembly,
f->IsFamily,
f->IsFamilyOrAssembly,
f->IsFamilyAndAssembly
);
}
}
/* This code example produces output similar to the following:
IsAssembly IsFamilyOrAssembly
IsPublic IsFamily IsFamilyAndAssembly
f_public True False False False False
f_internal False True False False False
f_protected False False True False False
f_protected_public False False False True False
f_protected_private False False False False True
*/
using System;
using System.Reflection;
public class Example
{
public int f_public;
internal int f_internal;
protected int f_protected;
protected internal int f_protected_public;
private protected int f_private_protected;
public static void Main()
{
Console.WriteLine("\n{0,-30}{1,-18}{2}", "", "IsAssembly", "IsFamilyOrAssembly");
Console.WriteLine("{0,-21}{1,-18}{2,-18}{3}\n",
"", "IsPublic", "IsFamily", "IsFamilyAndAssembly");
foreach (FieldInfo f in typeof(Example).GetFields(
BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public))
{
Console.WriteLine("{0,-21}{1,-9}{2,-9}{3,-9}{4,-9}{5,-9}",
f.Name,
f.IsPublic,
f.IsAssembly,
f.IsFamily,
f.IsFamilyOrAssembly,
f.IsFamilyAndAssembly
);
}
}
}
/* This code example produces output similar to the following:
IsAssembly IsFamilyOrAssembly
IsPublic IsFamily IsFamilyAndAssembly
f_public True False False False False
f_internal False True False False False
f_protected False False True False False
f_protected_public False False False True False
f_private_protected False False False False True
*/
Imports System.Reflection
Public class Example
Public f_Public As Integer
Friend f_Friend As Integer
Protected f_Protected As Integer
Protected Friend f_Protected_Friend As Integer
Private Protected f_Private_Protected() As Integer
Public Shared Sub Main()
Console.WriteLine(vbCrLf & _
"{0,-30}{1,-18}{2}", "", "IsAssembly", "IsFamilyOrAssembly")
Console.WriteLine("{0,-21}{1,-18}{2,-18}{3}" & vbCrLf, _
"", "IsPublic", "IsFamily", "IsFamilyAndAssembly")
For Each f As FieldInfo In GetType(Example).GetFields( _
BindingFlags.Instance Or BindingFlags.NonPublic Or BindingFlags.Public)
Console.WriteLine("{0,-21}{1,-9}{2,-9}{3,-9}{4,-9}{5,-9}", _
f.Name, _
f.IsPublic, _
f.IsAssembly, _
f.IsFamily, _
f.IsFamilyOrAssembly, _
f.IsFamilyAndAssembly _
)
Next
End Sub
End Class
' This code example produces output similar to the following:
'
' IsAssembly IsFamilyOrAssembly
' IsPublic IsFamily IsFamilyAndAssembly
'
'f_Public True False False False False
'f_Friend False True False False False
'f_Protected False False True False False
'f_Protected_Friend False False False True False
'f_Private_Protected False False False False True
Remarques
Si un champ a FamORAssem une visibilité de niveau, il peut être appelé à partir de n’importe quel membre d’une classe dérivée ou de n’importe quel membre dans le même assembly, mais pas à partir d’un autre type.
La visibilité réelle d’un champ est limitée par la visibilité de son type. La IsFamilyOrAssembly propriété peut être true
pour un champ, mais s’il s’agit d’un champ d’un type imbriqué privé, le champ n’est pas visible en dehors du type conteneur.
La visibilité d’un champ est décrite exactement par FieldAttributes.FamORAssem si le modificateur de visibilité est protected internal
en C# (Protected Friend
en Visual Basic, protected public
en C++).