c# - C#中的[]是什么?

标签 c# .net syntax attributes

例如:

    [TestFixtureSetUp]
    public void Init()
    {
        GetTestRepo(false);
    }

[TestFixtureSetUp] 在这个例子中,它是做什么的?根据我的经验,[] 通常指的是列表。

最佳答案

Attributes .它们是通往 add metadata 的途径关于 inspection at runtime 的方法/属性/接口(interface)/类/命名空间.

您的示例添加了 TestFixtureSetUpAttribute到一个方法。这允许测试运行器在设置文本夹具时确定要运行类中的哪个方法。

测试运行器在运行时将您的测试程序集加载到内存中。然后它会枚举在您的程序集中定义的类,这些类已标记有特定属性(无论 NUnit 使用什么来标记测试类)。运行器现在知道要实例化哪些类来运行测试。然后它会在类中定义的方法中查找将要运行以设置测试夹具的方法。它在每个方法中搜索您询问的属性。一旦找到该方法,它就会知道在运行测试/每个测试之前运行该方法(无论它在 NUnit 中意味着什么)。

属性都是关于添加有关您可以在运行时搜索的方法的信息。在这种情况下,如果您不需要它们,您就不会错过它们,但是当您确实需要它们时,OMFG,它们可用真是太好了。

(在 C# 中,您可以从类型名称中省略“Attribute”。编译器知道您在谈论,例如,当您说 [Serializable] 时,“SerializableAttribute”)

关于c# - C#中的[]是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2239263/

相关文章:

c# - 如何在 azure functions(2.0) 的 swagger UI 中默认显示帖子正文示例

c# - 从管理 UI 控制列表的排序顺序

java - 带有以下双括号的构造函数调用是什么?

c# - 调试 AzureFunction 以及部署 azure 函数时缺少 ProviderName

c# - 如何使用 web.config 应用程序设置中的键/值对创建 JSON 字符串?

c# - DataSets to POCOs - 关于 DAL 架构的查询

c# - 如果线程还在等待,异步连接的目的是什么?

go - fmt.Println 是否必须在 Go 中的函数内?

c# - C 和 C# 条件语句的更简单语法

c# - 有没有一种简单的方法可以将对象属性转换为字典<string, string>