请考虑以下事项:
[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:]语法背后的目的是什么?
答案 0 :(得分:9)
MethodInfo有一个ReturnTypeCustomAttributes属性,如果你在其上调用GetCustomAttributes(),你会得到atrtibutes的返回值。
MethodInfo mi = typeof(Class1).GetMethod("TestMethod");
object[] attrs = mi.ReturnTypeCustomAttributes.GetCustomAttributes(true);