有标注在函数申明上访的像[STAThread]
static void Main() {
}还有 AssemblyInfo 中没有函数只有中扩号内容的像
[assembly: AssemblyTitle("Pilotage")] 
[assembly: AssemblyProduct("Pilotage")]这类中扩号代表什么概念 ? 在 C# 中是怎么处理的, 我能自定义中扩号中的内容并用于自己写的程序吗, 如果可以的话能否举个例子.谢谢.

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/4132/4132313.xml?temp=.5164606
      

  2.   

    C# 提供一种对称为属性的声明标记进行定义的机制。可以将属性置于源代码的某些实体上以指定附加信息。可以在运行时通过反射检索属性包含的信息。您可以使用预定义属性或者定义自己的自定义属性
    使用属性请参见属性可以放置在几乎所有声明中(但特定的属性可能限制它在其上有效的声明类型)。在语法上,属性的指定方法为:将括在方括号中的属性名置于其适用的实体声明之前。例如,具有 DllImport 属性的类将声明如下:[DllImport] public class MyDllimportClass { ... }
    有关更多信息,请参见 DllImportAttribute 类。许多属性都带参数,而这些参数可以是定位(未命名)参数也可以是命名参数。任何定位参数都必须按特定顺序指定并且不能省略,而命名参数是可选的且可以按任意顺序指定。首先指定定位参数。例如,这三个属性是等效的:[DllImport("user32.dll", SetLastError=false, ExactSpelling=false)]
    [DllImport("user32.dll", ExactSpelling=false, SetLastError=false)]
    [DllImport("user32.dll")]
    第一个参数(DLL 名称)是定位参数并且总是第一个出现,其他参数为命名参数。在此例中,两个命名参数都默认为假,因此它们可以省略(有关默认参数值的信息,请参见各个属性的文档)。在一个声明中可以放置多个属性,可分开放置,也可放在同一组括号中:bool AMethod([In][Out]ref double x);
    bool AMethod([Out][In]ref double x);
    bool AMethod([In,Out]ref double x);
    某些属性对于给定实体可以指定多次。此类可多次使用的属性的一个示例是 Conditional:[Conditional("DEBUG"), Conditional("TEST1")] void TraceMethod() {...}
    注意   根据约定,所有属性名称都以单词“Attribute”结束,以便将它们与 .NET Framework 中的其他项区分。但是,在代码中使用属性时不需要指定属性后缀。例如,[DllImport] 虽等效于 [DllImportAttribute],但 DllImportAttribute 才是该属性在 .NET Framework 中的实际名称。创建自定义属性请参见using System;
    [AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct)]
    public class Author : Attribute
    {
       public Author(string name) { this.name = name; version = 1.0; }
       public double version;
       string name;
    }
    类名是属性名 Author。它由 System.Attribute 派生而来,因此是自定义属性类。构造函数的参数是自定义属性的定位参数(此例中为 name),任何公共读写字段或属性都是命名参数(在此例中,version 是唯一的命名参数)。注意 AttributeUsage 属性的用法,它使得 Author 属性仅在类和结构声明中有效。
    可以按如下所示使用此新属性:
    [Author("H. Ackerman", version=1.1)] class SomeClass{...}
    AttributeUsage 有一个命名参数 AllowMultiple,可以用它使自定义属性成为一次性使用或可以使用多次的属性。
    [AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct,
       AllowMultiple=true)] // multiuse attribute
    public class Author : Attribute
    {
       ...
    }
      

  3.   

    []属性在.net中引入的新的语法机制,可以用于程序集,class,method,memeber.
    它的主要作用就是描述,对程序集的描述,对类的描述,对方法的描述
    在运行时可以读取这些描述信息然后决定你的处理策略,[serilizable]描述一个类是可序列化的,[Webmethod]描述一个方法是webservice中的web方法,使用时你可以通过相应对象的type得到attribute。属性是可以自定义的,你需要继承Attribute类,并且你自己的属性类名字要以Attribute结尾,类似XXXAttribute.使用的时候可以省略最后的Attribute.