c# - 这个属性的“属性”是什么意思?
问题描述
[property: Obsolete]
static int X
{
get { return 42; }
}
在上面的代码中,“属性”这个词有什么作用?如果我将 [property: Obsolete] 替换为 [Obsolete],代码的工作方式似乎相同。尽管“属性”在 Visual Studio 中显示为蓝色,但它并未出现在 C# 关键字列表中: https ://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/
解决方案
这是一个属性目标规范。
在您的代码中,实际上并没有必要使用它,因为在该位置只有一个允许该属性的目标。Obsolete
属性可以放置在类型、方法或属性上,但如果放置在属性上,则只允许property
使用目标说明符(并隐式使用)。
最实际的用途是assembly
目标说明符,您可以在其中通过属性设置程序集配置:
[assembly: AssemblyProduct("Foo bar")]
您可以使用 为您的自定义属性设置允许的目标AttributeUsage
。
推荐阅读
- character-encoding - 为 v.7.2 设置 php 编码
- amazon-web-services - 日志不会从 aws ecs 发送到 logentries
- c# - 如何停止链接到定时操作的正在进行的计时器
- matlab - 如何用可变数字填充矩阵?
- python - 如何让 PyCharm 呈现我创建的图形而不是绘图对象?
- javascript - 替换字符串数组中的正则表达式字符串
- c# - Azure webapp 502.5 错误,突然出现
- constructor - cdef 类中的超级构造函数
- python-3.x - 在 Azure 中部署 Python-Flask api
- iphone - 加大尺寸 iPhone 的 UITableViewCell ContentView 尺寸问题