Jecho

导航

1.28

circumstance; nominate;annoy;

Activator

 

如在一个assembly内,Main后紧接着调用其delegate成员,为确保所有注册的成员可以在次之前注册号,可以用Activator.CreateInstance()先触发注册。

 

        [Conditional("DEBUG")]        

        private void Registry()   ; Release mode下将不执行。用#define 定义,也可以用#undef DEBUG 取消

 

DLLImport attribute, 用来调用不是.NET产生的函数,unmanaged. 加上extern表示他们是外部定义的,这里只声明就可以,不需要提供定义。

 如显示实现了构造函数,则编译器不会创建默认构造函数。

构造函数调用顺序:

ParentClass无参构造函数->SubClass无参造函数->SubSubClass带参构造函数 (不会自动调用subsubclass无参构造函数)

 

自定义Attribute类,如果是非抽象基类,至少要有一个public构造函数。class访问级别必须是public.

同一个成员可以附带多份attributes, 且按照“自底而上”顺序取出,基于的前提是:离成员越近的attribute越老。

 

位置参数 与 具名参数: 位置参数是attribute构造函数必须要的值。具名参数是代表其public成员,在使用时可有可无。具名参数必须放在位置参数的后面,位置参数必须跟构造函数内的一致。

 IL - 各种语言的互操作,另外可以让其他工具通过公共接口与各种.NET语言协同工作。并非所有语言都支持IL的全部特性。为了提高语言的互操作性,.NET定义了CLS(公共语言规范),为确保代码与CLS兼容,可以把CLSCompliant attribute设置为true.[CLSCompliant(true)],一旦出现CLS不兼容,就会触发编译错误。

posted on 2014-01-28 10:26  Jecho  阅读(113)  评论(0)    收藏  举报