3

在 C# 中,我在函数上方看到这段代码,想知道它的真正含义是什么?

[Register ("AppDelegate")]
4

3 回答 3

7

那不是关键字,而是属性,因此您可能需要阅读它。该属性将被称为RegisterAttribute,我以前从未见过它。MSDN 似乎也不承认它的存在。因此可以得出结论,它不是 .NET 的一部分,因此我们无法知道它的功能(除非您正在使用其他库,在这种情况下您应该将它们包含在您的帖子中)。

另一个选项是在您自己的项目中定义的(也许您从其他人那里导入了代码),在这种情况下,您应该右键单击Register并选择“转到定义”* 以找到它的定义(感谢@WillemDuncan,这是一个更好的解决方案)。


* 在 MonoDevelop 中是“转到声明”

于 2013-04-14T08:40:51.757 回答
3

在您的代码中搜索 class RegisterAttribute。.Net 不提供具有此名称的任何属性,它必须是在代码中某处定义的自定义属性F12(按注册,它将带您到属性的定义) -

public class RegisterAttribute : Attribute
{ }
于 2013-04-14T08:42:15.560 回答
3

它不是关键字,它是属性的语法。

属性可以放置在大多数任何声明中,尽管特定属性可能会限制其有效的声明类型。在 C# 中,您可以通过将属性名称放在方括号 ( []) 中来指定属性,

由于 .NET 没有被调用的Register属性,因此这可能是自定义属性。如果您右键单击此属性并在 之后"Go To Definition",您可能会找到一个自定义定义,例如;

public class Register : System.Attribute
{
    private string name;

    public Register(string name)
    {
        this.name = name;
    }
}

您可以从Creating Custom Attributes

于 2013-04-14T08:42:22.653 回答