2016-11-26 69 views
-3

在我的C#代碼中,我有一個包含屬性和函數的類。現在,我想讓我的函數GetCar返回具有值的類類型的對象。如何從C#中的類self返回類的對象?

我在我的代碼中有錯誤,但找不到它。

public class Car 
    { 
    public int CarHouseID { set; get; } 
    public int CarsInHouse{ set; get; } 
    public int CarSold { set; get; } 

    public Car GetCar() 
    { 
     return Car; 
    } 
    } 
+4

這不是很明智的代碼。而不是obj.GetCar(),你只需使用obj。 –

+0

你想調用構造函數嗎?例如'汽車=新車();'。 –

+0

所以你有一個_Car實例= new Car()_並且你想調用_Car newInstance = instance.GetCar(); _這沒什麼意義。 – Steve

回答

2

我想你應該有象下面這樣的代碼:

public Car GetCar() 
{ 
    return this; 
} 
0

用於創建對象必須構造函數。除非你在一個類上定義了自己的構造函數,否則它隱含地帶有一個公共的無參數構造函數(也稱爲公共缺省構造函數)。既然你沒有定義構造函數,你可以用這個調用創建一個新的實例:

Car car = new Car(); 

你正在尋找的關鍵詞是new,它通過調用構造函數創建一個實例。

如果您想首先初始化對象,則可以使用創建對象並返回它的方法(這看起來像是您正在尋找的對象)。這被稱爲工廠方法。你的例子中的工廠方法的問題(除了那裏沒有構造函數調用的事實)是它在對象上定義的。這意味着你已經需要一個實例來創建一個實例。這顯然不起作用。所以你必須在類上創建工廠方法,而不是在實例上(稱爲類方法)。類方法在C#中聲明爲static

public class Car 
{ 
    public int CarHouseID { set; get; } 
    public int CarsInHouse{ set; get; } 
    public int CarSold { set; get; } 

    public static Car GetCar() 
    { 
     return new Car(); 
    } 
}