当我遇到类似下面的问题时,我通过了.NET测验.
Char ch = Convert.ToChar('a' | 'e' | 'c' | 'a');
Run Code Online (Sandbox Code Playgroud)
在控制台中我们可以看到ch
变量的输出是g
.
有人可以描述发生了什么吗?谢谢!
对我来说,这是非常不可预测的代码结果。
没想到这段代码会产生这样的结果。
因此,我阅读了 Jeffrey Richter 的书(clr ia c#),并且有一个包含此代码的示例。
internal class ClassRoom
{
private List<String> _students = new List<string>();
public List<String> Students { get { return _students; } }
}
ClassRoom classRoom = new ClassRoom
{
Students = {"Mike", "Johny", "Vlad", "Stas"}
};
foreach (var some in classRoom.Students)
{
Console.WriteLine(some);
}
Run Code Online (Sandbox Code Playgroud)
而且,正如你们中的一些人所建议的,我们可以在控制台中看到四个名称。所以,我的问题是:
我们如何获得我们的名字,如果他们要分别在学生和 _students 中,由于不存在学生二传手而未分配。
__________编辑_1_______________
我阅读了您的回答,并感谢您的回答。
但是,你知道,这是一种误解……我真的想不通。
当我初始化学生时,我初始化_students?
还有什么不那么重要,当我从 IEnumerable( some ) 中获取变量时,我从Students 中获取变量?我想不是。
我不明白,我到底在哪里分配变量(初始化)_students集合?
谢谢你帮我弄清楚!
这是一种奇怪的事情,但是如果您尝试使用DestroyImmediate
函数销毁子对象,那么您将获得不可预测的结果。
在我的例子中,Unity 并没有销毁所有的孩子,而是只销毁了其中的一半。
foreach(var child in parent)
{
DestroyImmediate(child);
}
Run Code Online (Sandbox Code Playgroud)