7

次の点を考慮してください。

[AttributeUsage(AttributeTargets.Parameter | AttributeTargets.ReturnValue)]
public class NotNullAttribute : Attribute
{
}

public class Class1
{
    [return: NotNull]
    public static string TestMethod([NotNull] string arg)
    {
        return arg + " + " + arg;
    }
}

System.Reflection を使用して、メソッドの戻り値に NotNullAttribute 属性が適用されたことを確認するにはどうすればよいでしょうか? できない場合、 [return: ] 構文の背後にある目的は何ですか?

4

1 に答える 1

9

MethodInfo には ReturnTypeCustomAttributes プロパティがあり、これに対して GetCustomAttributes() を呼び出すと、戻り値の属性が取得されます。

MethodInfo mi = typeof(Class1).GetMethod("TestMethod");
object[] attrs = mi.ReturnTypeCustomAttributes.GetCustomAttributes(true);
于 2010-04-15T19:32:43.450 に答える