A,正确
B,Obsolete 特性将某个程序实体标记为一个建议不再使用的实体。NonSerialized特性指示可序列化类的某个字段不应被序列化。
C,特性可应用于Assembly(程序集)、Module(模块)、Class(类)、Struct(结构)、Enum(枚举)、Constructor(构造函数)、Method(方法)、Property(属性)、Field(字段)、Event(事件)、Interface(接口)、Parameter(参数)、Delegate(委托)、ReturnValue(返回值)、GenericParameter(泛型参数),见
http://msdn.microsoft.com/zh-cn/library/system.attributetargets.aspx
D,一个还是多个特性取决于特性声明,单笼统的说“只能有一个”是错的
综合:B、C、D都是错的,A正确
B,obsolete是过时的,编译会有提示或错误.
C,属性上也可以有Attribute
D,可以有多个Attribute