我正在做一個基本的聊天程序作爲論文,我遇到了這個問題。在C#開關櫃中使用未分配的變量
正如你可以在圖片中看到,它給我的線107的未賦值的變量錯誤,但它工作完全正常後(如在管線125)。切換案例總是從案例1開始,在案例1中我創建了一個名爲login的新UserLogin表單。之後,它決定是否應該轉向情況2或3.除了第107行之外,它們都沒有任何未分配的變量錯誤。我真的不知道爲什麼會發生這種情況。
我正在做一個基本的聊天程序作爲論文,我遇到了這個問題。在C#開關櫃中使用未分配的變量
正如你可以在圖片中看到,它給我的線107的未賦值的變量錯誤,但它工作完全正常後(如在管線125)。切換案例總是從案例1開始,在案例1中我創建了一個名爲login的新UserLogin表單。之後,它決定是否應該轉向情況2或3.除了第107行之外,它們都沒有任何未分配的變量錯誤。我真的不知道爲什麼會發生這種情況。
即使你知道在命中2或3之前你會打1號案例,編譯器不會。
您需要在switch
塊之前指定login
值,即使它只是null
。
login = null;
switch (...)
{
case 1:
login = new UserLogin();
...
如果你知道你是總是會打1的情況下首先,考慮只登錄新UserLogin
分配之前,你甚至進入switch
聲明。
這是因爲變量唯一分配的位置是case 1
。您需要將其分配到switch語句之外,因爲有可能永遠不會執行該變量,因此該變量將永遠不會被分配。
包括switch語句和'login'聲明 –
如果你註釋掉第107行,你可能會在下一行使用'login'看到同樣的錯誤。編譯器僅在您第一次使用未分配的變量時標記。 –
請發佈您的代碼,而不是您的代碼的屏幕截圖。 – vesan