-1

我正在制作一个基本的聊天程序作为论文,我遇到了这个问题。

在此处输入图像描述

正如您在图片中看到的那样,它在第 107 行给了我一个未分配的变量错误,但之后它工作得非常好(如第 125 行)。switch case 总是从 case 1 开始,我在其中创建了一个名为 login 的新 UserLogin 表单。之后,它决定是否应该转到案例 2 或案例 3。除了第 107 行之外,它们都没有任何未分配的变量错误。我真的不知道为什么会发生这种情况。

4

2 回答 2

3

那是因为变量被分配的唯一位置是case 1. 您需要在 switch 语句之外分配它,因为有可能case 1永远不会执行,因此永远不会分配变量。

于 2016-03-24T00:48:17.340 回答
3

即使您知道在遇到 2 或 3 之前您会遇到案例编号 1,但编译器不会。

您需要login在块之前分配一个值switch,即使它只是null.

login = null;

switch (...)
{
    case 1:
        login = new UserLogin();
        ...

如果您知道您总是会首先遇到案例 1,请考虑UserLogin在您输入switch语句之前为 login 分配一个新的。

于 2016-03-24T00:48:49.880 回答