是否允许以下代码?内部结构在外部类中声明,并且不为结构调用new。它没有崩溃,但我对此有所怀疑。
struct Inner
{
public int i;
}
private class Outer
{
public Outer() { inner.i = 10; }
private int i;
public Inner inner;
}
private static void Main(string[] arg)
{
Outer o = new Outer();
Console.WriteLine(o.inner.i);
}
答案 0 :(得分:4)
以下是MSDN引用的内容,并展示了Structs与类的不同之处(请参阅我用粗体格式化的部分,它们应该回答您的问题):
“Structs与类共享大部分相同的语法,尽管结构比类更有限:
Dictionary<string, myStruct>
。new
运算符的情况下实例化结构。 System.ValueType
继承,继承自System.Object
。答案 1 :(得分:3)
使用默认值自动构造的值类型(结构是值类型),因此这段代码可以正常(如果我正确理解你的问题)。