永发信息网

C# 求ctor构造器和beforefieldinit方法相关的知识

答案:1  悬赏:70  手机版
解决时间 2021-04-21 20:44
求ctor构造器和beforefieldinit方法相关的知识 详细者得分
最佳答案

constructor 是一个对象的方法,用来初始化对象。
可以有多个constructor,但每一个至少有一个constructor initializer(类似于继承,但不是继承,要么base(...) 要么this(...),若没有constructor Initializer,则编译器会提供默认的base()。默认的constructor,若一个类没有定义constructor,编译器会提供默认的constructor : className(){}。变量初始化器(instance varible initializer),最先执行,也就是说在constructor 和constructor initializer之前执行(这一点和java不同)。constructor不能被继承。(所以叫constructor initializer)。
http://www.cnblogs.com/jax/archive/2007/09/09/887609.html这里有相对详细的讲解。希望对你有帮助。



因为类型构造器本身的特点,在一定程度上决定了.cctor的调用时机并非是一个确定的概念。因为类型构造器都是private的,用户不能显式调用类型构造器。所以关于类型构造器的执行时机问题在.NET中主要包括两种方案:



二者的执行差别主要体现在是否为类型实现了显式的静态构造函数,如果实现了显式的静态构造函数,则按照precise方式执行;如果没有实现显式的静态构造函数,则按照beforefieldinit方式执行。
为了说清楚类型构造器的执行情况,我们首先在概念上必须明确一个前提,那就是precise的语义明确了.cctor的调用和调用存取静态成员的时机存在精确的关系,所以换句话说,类型构造器的执行时机在语义上决定于是否显式的声明了静态构造函数,以及存取静态成员的时机,这两个因素。


但这个问题比较抽象,我理解的也不是很好。给你找了个网站,
http://www.kuqin.com/dotnet/20090406/44364.html

这里有beforefieldinit的讲解,看看吧~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我在5173花30元买游戏币要不要交服务费?
什么是车的扭矩,1.4排量的没有T的小型车有哪
【高分求】一份介绍歌星(跳舞 弹乐器等都可
怎樣快速忘掉一個人
梦幻:刷师徒任务徒弟能得修炼经验吗
女孩你的一分钟有多长?
你对相亲怎么看
做生意时,你需要哪些短语和词汇
我这有四首诗,中心思想有能够详细解答的吗?
小火车餐饮有限公司在哪里啊,我有事要去这个
我家的网址变成了2523,改不回去了!
bt下载会被禁止吗
西伯利亚SteelSeries
赞美老师漂亮的名言,形容老师的经典句子大全
本来是电信3兆宽带可为什么看电影缓冲最多只
推荐资讯
赛扬 奔腾 酷睿 CPU的介绍
有没有超伤感的歌曲?
怎样看报关培训机构是否合法?
X减2分之X减1等于2减3分之X加2 去分母怎么算
我想了解一下衣时尚九元韩版女装的情况,有谁
宏南年检站在哪里啊,我有事要去这个地方
保洁主管绩效考核评语,绩效考核结果反馈面谈
光标放在框里打字时候,怎么自己会跑啊?鼠标
星座不合适,两个人在一起能幸福么
北方雨水有关的谚语,关于秋天的谚语
大别山野味馆地址有知道的么?有点事想过去
描写人物的作文题目怎么写
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?