我想使用靜態方法使物件為空。為了解釋,我創建了一個示例代碼 -
class Program
{
static void Main(string[] args)
{
Car car = new Car();
car.Name = "Audi";
makeNull(car);
Console.WriteLine(car.Name);
Console.ReadKey();
}
static void makeNull(Car c)
{
c = null;
}
}
class Car
{
public string Name;
}
//輸出 - 奧迪
我期待上述代碼出現 Null 例外,但令人驚訝的是輸出“Audi”。誰能解釋為什么它的行為是這樣的?
uj5u.com熱心網友回復:
您不能操縱參考本身,而不將其宣告為 ref。因此這應該有效:
static void MakeNull(ref Car c)
{
c = null;
}
MakeNull(ref car);
請注意,您可以修改參考指向的資料,因此這將給出輸出“VW”:
static void MakeNull(Car c)
{
c.Name = "VW";
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/457499.html
