2012-11-01 36 views
-2

爲什麼,如果這樣做的:使用未分配的局部變量 '酒吧'

Object bar; 
Foo(bar); 

在C#中,我得到一個

Use of unassigned local variable 'bar' 

錯誤?

我該如何解決?

+1

分配一定的參考價值_bar_(甚至零是罰款) 對象欄= NULL; – Shashwat

+2

因爲Java!= C# –

+2

你也不能在Java中這樣做。 – Thilo

回答

2

如何分配一個值的變量在使用它之前,作爲錯誤信息的狀態。

如果您傳遞變量的方法,你可能想看看使用out keyword

out關鍵字使參數通過引用傳遞。這是 類似ref關鍵字,但ref需要變量 在它被傳遞之前被初始化。要使用out參數, 方法定義和調用方法都必須顯式使用out關鍵字。

從鏈接中,您可以看到如何使用變量,如果您希望傳遞給方法,並期望變量在此之後被初始化。

class OutExample 
{ 
    static void Method(out int i) 
    { 
     i = 44; 
    } 
    static void Main() 
    { 
     int value; 
     Method(out value); 
     // value is now 44 
    } 
} 
1

指定一些東西給吧。

Object bar = new Object(); 

或轉讓其空

Object bar = null; 
0

你需要在使用前初始化變量:

Object bar = null; 

它初始化到null會給一樣不初始化反而會使它可用。如果你想要一個實際值/類的實例,請嘗試:

Object bar = new Object(); 
0

給它分配一個值:使用前

Object bar = new Object(); 

或者

Object bar = null; 
0

分配值。 null將用於對象。默認會適用於任何類型。

Object bar = default (Object) 
1

您的變量「bar」尚未實例化,因此無法使用。只需將其設置爲空,C#將允許您使用它。 C#這樣做是爲了在變量被使用之前強制變量的初始化。真的,這只是一個很好的編程習慣。

Object bar = null; 
0

首先,您必須分配nullbar

Object bar = null;