我在C#中有两个相似的结构,每个结构都包含一个整数,但后者有实现的get/set访问器.
为什么在分配字段之前必须Y使用new运算符初始化struct a?是y仍然当我初始化它的值类型new?
public struct X
{
public int a;
}
public struct Y
{
public int a { get; set; }
}
class Program
{
static void Main(string[] args)
{
X x;
x.a = 1;
Y y;
y.a = 2; // << compile error "unused local variable" here
Y y2 = new Y();
y2.a = 3;
}
}
Run Code Online (Sandbox Code Playgroud) 从文档:
与类不同,可以在不使用新运算符的情况下实例化结构.
那我为什么会收到这个错误:
使用未分配的局部变量'x'
当我尝试这样做?
Vec2 x;
x.X = det * (a22 * b.X - a12 * b.Y);
x.Y = det * (a11 * b.Y - a21 * b.X);
Run Code Online (Sandbox Code Playgroud)
Vec2 x结构在哪里?