- 模式最大的好处在于“沟通”,A说:“嘿,我用了xxx模式”,假如团队其他人都知道这个模式,那大家都非常清楚代码的结构了!
- 第二种和第三种混用。如果你在各个分层当中全部使用DTO,肯定增加很大的复杂度。不过,有些情况,使用DTO是非常不错的。关于这一点,在《.net企业应用架构设计》中有提及。
- 刚写了两个Helloword就开始布道“最佳实践”了???
- 女生的话,平时成绩好,保研没问题吧!那些建议你不考研的人,一般他们也都没有上过研究生,所以他们没有资格建议你不考研。一句话,有能力就要向“上”考,考研,考博。。。学校的基础理论一点都不会过时,那些说过时的,是只注重“应用”的人。看腾讯、百度、华为这些大公司的面试题怎么出?就是基础。
- @cyoooo7
OK。
的确,问题是“初始化”这个概念有点歧义。初始化有两种,一种是初始化为默认值,另外一种是赋值初始化。
对于类的字段,在构造函数之前都经过默认值初始化(值类型为0,引用类型为空),然后再在构造函数中进行赋值初始化。 - 时字段a,b会调用int类型的构造函数来初始化吗?
3 开始执行_a的构造函数,在构造函数里面执行下面的东西:
a)为字段b赋值,b=123;
b)调用基类构造函数(基类实例化没有?如何实例化的?)
c)执行int c=121
... - {
int b = 123;
public A()
{
int c = 121;
}
}
[/code]
在IL中类A的构造函数执行顺序是:
1、初始化变量b,b=123(这种属于赋值初始化,你觉得此时调用b类型的构造函数没?,至于默认初始化的情况,另考虑)
2、调用基类构造函数,也就是System.object的构造函数;
3、执行int c=121;
IL_0000: ldarg.0
IL_0001: ldc.i4.s 123
IL_0003: stfld int - 楼主的文字有严重误导,待商榷和修正,莫误人子弟。
你通过C#程序运行的结果来认定“先初始化实例字段,再调用构造函数”,这只是通过“表象”看“表象”。但是,在IL语言层面,实例字段都是放到构造函数里面初始化的(并且先于构造函数中用户已定义的代码)。静态字段与静态构造函数的道理相同。所以,从原理上讲,先调用构造函数再初始化字段!构造函数是程序的必经之路(你默认不写构造函数,编译器会给你添加一个构造函数;你写了很多个重载的构造函数,那么,每个构造函数都会初始化那些字段的!)
建议参考一下《CLR via C#》,答案C是没有问题的。 - “事物脚本”听起来怪怪的,应该是“事务脚本”吧,也可以称为“面向过程”。
- 重庆 重庆大学80周年校庆晚会










