我正在制作一个基本的聊天程序作为论文,我遇到了这个问题。
正如您在图片中看到的那样,它在第 107 行给了我一个未分配的变量错误,但之后它工作得非常好(如第 125 行)。switch case 总是从 case 1 开始,我在其中创建了一个名为 login 的新 UserLogin 表单。之后,它决定是否应该转到案例 2 或案例 3。除了第 107 行之外,它们都没有任何未分配的变量错误。我真的不知道为什么会发生这种情况。
我正在制作一个基本的聊天程序作为论文,我遇到了这个问题。
正如您在图片中看到的那样,它在第 107 行给了我一个未分配的变量错误,但之后它工作得非常好(如第 125 行)。switch case 总是从 case 1 开始,我在其中创建了一个名为 login 的新 UserLogin 表单。之后,它决定是否应该转到案例 2 或案例 3。除了第 107 行之外,它们都没有任何未分配的变量错误。我真的不知道为什么会发生这种情况。
那是因为变量被分配的唯一位置是case 1
. 您需要在 switch 语句之外分配它,因为有可能case 1
永远不会执行,因此永远不会分配变量。
即使您知道在遇到 2 或 3 之前您会遇到案例编号 1,但编译器不会。
您需要login
在块之前分配一个值switch
,即使它只是null
.
login = null;
switch (...)
{
case 1:
login = new UserLogin();
...
如果您知道您总是会首先遇到案例 1,请考虑UserLogin
在您输入switch
语句之前为 login 分配一个新的。