作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在设计一个特定于域的 CLI,在过去的几周里,我一直在调查各种极端情况,以确保我对所需的内容有深刻的了解。
现在我正在研究类型构造。我正在考虑以下场景,我找不到太多信息:
class C
{
public static int Field = D.Field;
}
class D
{
public static int Field = C.Field;
}
class TestProg
{
static void Main()
{
Console.WriteLine( D.Field );
}
}
beforefieldinit
.
0
C..cctor
中的触发点。构建
D
被忽略,因为
D
的 build 已经开始。然而,对我来说,这个程序看起来无效,因为
C..cctor
在完全构建之前使用某物。
If marked BeforeFieldInit then the type’s initializer method is executed at, or sometime before, first access to any static field defined for that type.
最佳答案
这是一个答案:
II.10.5.3.1 - ECMA 335 的 II.10.5.3.3 相当明确地回答了这个问题,并解释了以下大部分行为。
这是一个非答案,但对于评论来说远远不够。
这在我看来是说明性的:
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(D.Field);
Console.WriteLine(C.Field);
Console.WriteLine(C.FieldX);
Console.WriteLine(D.FieldY);
Console.ReadLine();
}
}
}
class D
{
public static int Field = C.FieldX;
public static int FieldY = C.Field;
}
class C
{
public static int FieldX = 5;
public static int Field = D.Field;
}
static void Main(string[] args)
{
Console.WriteLine(C.Field);
Console.WriteLine(D.Field);
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(D.Field);
Console.WriteLine(D.FieldY);
Console.ReadLine();
}
}
}
class D
{
public static int Field = FieldY;
public static int FieldY = 5;
}
关于.net - 循环类型初始值设定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20062098/
我想成为 Spark 纱客户(link)。是否需要安装hadoop?还是只安装 yarn 可以吗? (by this link) 最佳答案 No Spark不需要Hadoop即可运行。 Apache
我是一名优秀的程序员,十分优秀!