使用英语阅读

通过


MethodBase.IsAssembly 属性

定义

获取一个值,该值指示此方法或构造函数的潜在可见性是否由 Assembly 描述;也就是说,此方法或构造函数只对同一程序集中的其他类型可见,而对该程序集以外的派生类型则不可见。

public bool IsAssembly { get; }

属性值

如果此方法或构造函数的可见性由 Assembly 准确描述,则为 true;否则为 false

实现

示例

下面的代码示例定义了具有不同可见性级别的方法,并显示其 IsAssemblyIsFamilyIsFamilyOrAssemblyIsFamilyAndAssembly 属性的值。

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() {}
    private protected void m_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 (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
m_private_protected  False    False    False    False    True
 */

注解

方法的实际可见性受其类型的可见性限制。 属性 IsAssembly 可能 true 用于方法,但如果它是私有嵌套类型的方法,则该方法在包含类型之外不可见。

如果在 Visual Basic) 中 (Friend 了唯一的可见性修饰符internal,则完全描述MethodAttributes.Assembly方法或构造函数的可见性。 此属性 false 适用于 protected internal Visual Basic 中的 C# (Protected Friendprotected public C++) 中的方法;使用 IsFamilyOrAssembly 属性标识此类方法。

适用于

另请参阅