vb.net - 属性、函数等的非自定义属性是什么?

标签 vb.net attributes default

我一直在网上浏览,发现了很多有关 VB.NET 属性的一般信息以及创建和使用自定义属性的信息,以及大约 10 个左右的通用非自定义属性在 MSDN 上列出。

但是,我无法找到可用于某些事物的非自定义属性的信息/列表。就像我可以拥有的属性(property) <EditorBrowsable(EditorBrowsableState.Always), Description("My properties description")>

如何找出哪些非自定义属性已可用于哪些事物(例如函数、属性、类等)?

最佳答案

也许“非定制”这个词是错误的。我认为您要求的是作为 .NET Framework 的一部分包含的属性列表。当然,该列表将取决于您所针对的框架版本以及您选择在项目中引用的特定框架库,但 MSDN 提供了相当全面的列表 here .

就确定哪些属性可以应用于哪些类型的元素(例如类、属性、方法、程序集)而言,如果您单击任何链接来查看任何属性类的 MSDN 页面,您就可以您会注意到页面的语法部分显示了类的声明。在类声明上方,您将看到 AttributeUsage应用于属性类的属性。 没错——属性本身也可以有属性——我同意。

AttributeUsage 的第一个参数属性称为 ValidOn 。这是一个 AttributeTargets 枚举,定义可以应用该属性的元素类型。例如,如果 AttributeUsage属性类上的属性类似于 <AttributeUsage(AttributeTargets.All)> ,这意味着它可以应用于任何事物。然而,如果它看起来像 <AttributeUsage(AttributeTargets.Class)> ,这意味着它只能应用于一个类。

关于vb.net - 属性、函数等的非自定义属性是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18616257/

相关文章:

c++ - 为什么在定义析构函数时编译器不再添加默认移动构造函数和赋值?

vb.net - 如何在 VB .NET 中创建控件数组

vb.net - 共享方法可以是多线程的吗?

mysql - 使用参数将数据插入 MySQLTable

c# - 如何知道为类型定义的属性?

c# - 在属性中传递静态数组

python - 属性错误 : 'int' object has no attribute 'sleep'

java - java中接口(interface)的默认方法

asp.net - 回发时丢失动态数据绑定(bind)

php - MySQL-设置动态默认值