c中的属性return是什么意思
本文关键字:是什么 意思 return 属性 | 更新日期: 2023-09-27 18:00:22
我有一段这样的代码:
[return: XmlElement("return", Namespace = "", IsNullable = false, DataType = "base64Binary")]
public byte[] WORK([XmlElement(Namespace = "http://www.example.com/xml/someapi", DataType = "string", Form = XmlSchemaForm.Qualified)] string guid, [XmlElement(Namespace = "http://www.example.com/xml/someapi", DataType = "base64Binary", Form = XmlSchemaForm.Qualified)] byte[] data) {
// some work
}
属性return:
是什么意思?
我以前从未遇到过它,但它似乎被描述为"解除属性目标"中的属性目标
这种情况在封送时经常出现。解决对于模糊性,C#为每种类型都有一组默认目标声明,可以通过显式指定来重写属性目标。C#
// default: applies to method
[SomeAttr]
int Method1() { return 0; }
// applies to method
[method: SomeAttr]
int Method2() { return 0; }
// applies to return value
[return: SomeAttr]
int Method3() { return 0; }
请注意,这与SomeAttr的目标无关被定义为有效;也就是说,即使SomeAttr被定义为仅适用于返回值,返回目标仍然必须指定。换句话说,编译器不会使用AttributeUsage用于解决不明确属性目标的信息。了解更多信息有关信息,请参阅AttributeUsage(C#编程指南)。的语法属性目标如下:[目标:属性列表]
这是一个属性目标
它是在修饰属性,使其适用于方法的返回,而不是它所使用的方法
更常见的用途是[assembly:...]
属性目标,通常使用如下:
[assembly: InternalsVisibleTo("MyProject.UnitTests")]
详细说明
这些是装饰属性的属性目标:
属性的目标是该属性所应用的实体。
进一步解释:
例如,属性可以应用于类、特定方法或整个程序集。默认情况下,属性应用于它后面的元素。但您也可以显式标识,例如,属性是应用于方法、参数还是返回值。
该文件列出了可能的目标值。
例如,System.Convert.ChangeType方法的注释如下:
[return: NotNullIfNotNull(nameof(value))]
public static object? ChangeType(object? value, TypeCode typeCode)
{
return ChangeType(value, typeCode, CultureInfo.CurrentCulture);
}