C#中的[]是什么?

nub*_*ela 15 .net c# syntax attributes

例如:

    [TestFixtureSetUp]
    public void Init()
    {
        GetTestRepo(false);
    }
Run Code Online (Sandbox Code Playgroud)

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

小智 36

属性.它们是一种在运行时添加有关方法/属性/接口/类/命名空间的元数据以供检查的方法.

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

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

属性是关于添加有关可在运行时搜索的方法的信息.它是那种如果你不需要它们就不会错过它们的东西,但是当你需要它们时,OMFG很棒它们是可用的.

(在C#中,你可以省略类型名称中的"属性".编译器知道你正在谈论,例如,当你说"SerializableAttribute"时[Serializable])