2016-11-26 63 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(); 
    } 
}