在下面的语法中使用方括号"[]"有什么用?

Arp*_*sal 4 c#

这必须是一个非常基本的问题,但在互联网上磕磕绊绊了一段时间后,我无法理解下面的代码.我对c#很新.究竟是什么[](方括号)的用例

class Options
{
    [Option('f', "file", Required = true,
        HelpText = "Input file to be processed.")]
    public string InputFile { get; set; }

    [Option('o', "outprefix", Required = true,
        HelpText = "Output prefix for file.")]
    public string OutPreFix { get; set; }

    [Option('v', "verbose", DefaultValue = false,
        HelpText = "Prints all messages to standard output.")]
    public bool Verbose { get; set; }

    [ParserState]
    public IParserState LastParserState { get; set; }

    [HelpOption]
    public string GetUsage()
    {
        return HelpText.AutoBuild(this, (HelpText current) => HelpText.DefaultParsingErrorsHandler(this, current));
    }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 7

这些是属性.基本上他们为成员提供自定义元数据.该元数据内置于程序集中,并且可以由其他代码提取(通过反射),然后其他代码可以将信息用于任何目的.

在这种特殊情况下,它们被用于为可以在命令行上指定的属性提供元数据,可能是由此库使用.

如果你是C#的新手,你可能想暂时忽略它们 - 虽然这很大程度上取决于你正在做什么样的开发.一些代码严重依赖于属性(例如MVC),而其他代码几乎不会触及它.