Exporter (0) Imprimer
Développer tout

MethodBase.IsFamilyOrAssembly, propriété

Mise à jour : novembre 2007

Obtient une valeur indiquant si la visibilité potentielle de cette méthode ou de ce constructeur est décrite par MethodAttributes.FamORAssem, c'est-à-dire si la méthode ou le constructeur peut être appelé par des classes dérivées où qu'elles se trouvent, et par des classes du même assembly.

Espace de noms :  System.Reflection
Assembly :  mscorlib (dans mscorlib.dll)

public bool IsFamilyOrAssembly { get; }
/** @property */
public final boolean get_IsFamilyOrAssembly()

public final function get IsFamilyOrAssembly () : boolean

Valeur de propriété

Type : System.Boolean

true si l'accès à cette méthode ou à ce constructeur est décrit exactement par MethodAttributes.FamORAssem ; sinon, false.

Si un membre de type a la visibilité MethodAttributes.FamORAssem, il peut être appelé à partir de n'importe quel membre d'une classe dérivée ou de n'importe quel membre du même assembly, mais il ne peut être appelé à partir d'aucun autre type.

La visibilité réelle d'une méthode est limitée par la visibilité de son type. La propriété IsFamilyOrAssembly peut être true pour une méthode, mais s'il s'agit d'une méthode d'un type imbriqué privé, la méthode n'est pas visible à l'extérieur du type conteneur.

La visibilité d'une méthode ou d'un constructeur est décrite exactement par MethodAttributes.FamORAssem si le modificateur de visibilité est protected internal en C# (Protected Friend en Visual Basic, protected public en C++).

L'exemple de code suivant définit des méthodes ayant des niveaux de visibilité différents, et affiche les valeurs de leurs propriétés IsAssembly, IsFamily, IsFamilyOrAssembly et IsFamilyAndAssembly.

Remarque :

Les langages Visual Basic et C# ne peuvent pas définir des méthodes avec la visibilité MethodAttributes.FamORAssem ; ce niveau d'accès apparaît uniquement dans l'exemple C++.

using System;
using System.Reflection;

public class Example
{
    public void m_public() {}
    internal void m_internal() {}
    protected void m_protected() {}
    protected internal void m_protected_public() {}

    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 (MethodBase m in typeof(Example).GetMethods(
            BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public))
        {
            if (m.Name.Substring(0, 1) == "m")
            {
                Console.WriteLine("{0,-21}{1,-9}{2,-9}{3,-9}{4,-9}{5,-9}", 
                    m.Name,
                    m.IsPublic,
                    m.IsAssembly,
                    m.IsFamily,
                    m.IsFamilyOrAssembly,
                    m.IsFamilyAndAssembly
                );
            }
        }
    }
}

/* This code example produces output similar to the following:

                              IsAssembly        IsFamilyOrAssembly
                     IsPublic          IsFamily          IsFamilyAndAssembly

m_public             True     False    False    False    False
m_internal           False    True     False    False    False
m_protected          False    False    True     False    False
m_protected_public   False    False    False    True     False
 */


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile pour Smartphone, Windows Mobile pour Pocket PC, Xbox 360

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Pris en charge dans : 3.5, 2.0, 1.0

XNA Framework

Pris en charge dans : 2.0, 1.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft