我在同一个C#源代码文件中有两个不同的类。顶部是一个名为:
的类static class Persist : object
带有字段:
public static List<Weapon> AllWeapons = new List<Weapon>() {
new Weapon("King's Spatha", 10, 20),
new Weapon("Nofoot Claw", 7, 11)
};
进一步将源文件放在另一个类中(不嵌套在第一类中):
public static class King
我想在该课程中做的是以下事情:
public static Weapon UsedWeapon = Persist.AllWeapons[0];
我遇到的问题不是找出King.UsedWeapon.ID = "King's Spatha"
是否。实际上,此代码确实按预期工作。
问题是我不完全了解幕后情况。是否在类Persist
之前存在类King
?在源代码中哪个类放在另一个之上有关系吗?
答案 0 :(得分:0)
定义顺序没有任何影响。 静态类和字段在首次访问该类时被“初始化”。
关于循环依赖的问题: 如果依赖项是循环的,则将开始对静态字段进行初始化,但是如果依赖项以循环方式返回到该字段,则在初始化完成之前,该字段将未经初始化就使用!
示例:
public class X
{
public X y = Y.x;
}
public static class Y
{
public static X x = new X();
}
void Test()
{
X x = new X();
}