英語で読む

次の方法で共有


MethodBase.IsAssembly プロパティ

定義

このメソッドまたはコンストラクターを参照できる範囲が Assembly によって示されるかどうかを表す値を取得します。ここで判定されるのは、このメソッドまたはコンストラクターが同じアセンブリ内の他の型でのみ参照でき、アセンブリ外部の派生型では参照できないものであることです。

C#
public bool IsAssembly { get; }

プロパティ値

このメソッドまたはコンストラクターを参照可能な範囲が Assembly によって正しく示される場合は true。それ以外の場合は false

実装

次のコード例では、さまざまなレベルの可視性を持つメソッドを定義し、そのプロパティIsFamilyOrAssemblyIsFamily、および プロパティの値をIsAssemblyIsFamilyAndAssembly表示します。

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() {}
    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 がありますが、プライベートの入れ子になった型のメソッドの場合、メソッドは含まれている型の外部には表示されません。

メソッドまたはコンストラクターの可視性は、可視性修飾子internalが (Friend Visual Basic の場合) の場合に正確MethodAttributes.Assemblyに記述されます。 このプロパティは、falseC# (Protected FriendVisual Basic protected public では C++) にあるメソッドprotected internal用です。このようなメソッドを識別するには、 IsFamilyOrAssembly プロパティを使用します。

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

こちらもご覧ください