相关疑难解决方法(0)

C#Structs:未分配的局部变量?

文档:

与类不同,可以在不使用新运算符的情况下实例化结构.

那我为什么会收到这个错误:

使用未分配的局部变量'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结构在哪里?

c# struct

20
推荐指数
2
解决办法
1万
查看次数

为什么在空的用户定义的结构上没有"使用未分配的局部变量"编译错误?

以下编译成功:

struct Foo {}

void Test()
{
    Foo foo;
    foo.ToString();
}
Run Code Online (Sandbox Code Playgroud)

以下产生"使用未分配的局部变量"编译错误.

struct Foo
{
    int i;
}

void Test()
{
    Foo foo;
    foo.ToString();
}
Run Code Online (Sandbox Code Playgroud)

看起来在第一种情况下,编译器做了某种推断,因为结构没有成员,所以不需要初始化它们.但我不确定这对我有意义.编译器可能强制您将foo变量初始化为new Foo().

因此,如果在C#中所有局部变量必须在访问之前初始化,为什么第一个示例编译

c#

7
推荐指数
1
解决办法
1169
查看次数

标签 统计

c# ×2

struct ×1