我正在尝试调用该方法,但是由于某种原因它无法正常工作 有人可以告诉我如何建立更好的方法。
namespace ObjectsLifeTime
{
class Program
{
static void Main(string[] args)
{
Car myCar = new Car();
myCar.Make = "Ford";
myCar.Model = "Something";
myCar.Year = 2010;
myCar.Colour = "Blue";
Console.WriteLine(myCar.Stats());
}
class Car
{
public string Make { get; set; }
public string Model { get; set; }
public int Year { get; set; }
public string Colour { get; set; }
public static string Stats(Car car)
{
string restart = "false";
do
{
restart = "false";
Console.WriteLine("Press a to get the Make of the car");
Console.WriteLine("Press s to get the Model of the car");
Console.WriteLine("Press d to get the Year of the car");
Console.WriteLine("Press f to get the Colour of the car");
}
while (restart == "true");
string UserInput = Console.ReadLine();
if (UserInput == "a")
{
string UserOutput = car.Make;
return UserOutput;
}
if (UserInput == "s")
{
string UserOutput = car.Make;
return UserOutput;
}
if (UserInput == "d")
{
string UserOutput = car.Make;
return UserOutput;
}
if (UserInput == "f")
{
string UserOutput = car.Make;
return UserOutput;
}
else
{
restart = "true";
string UserOutput = "I did not understand that";
return UserOutput;
}
}
}
}
}
答案 0 :(得分:0)
您的统计功能是静态的。 如果您有意这样做,则可以通过类名Car.Stats()
进行访问如果要从Car类的每个实例中访问它,则需要创建一个常规函数(删除静态...)
答案 1 :(得分:0)
在面向对象编程中,类是诸如汽车之类的模板。 汽车是模板,但例如沃尔沃是汽车的实例。 沃尔沃汽车是用汽车的模板制成的,但这只是它的一个实例。 在car类中定义的所有属性和功能都可以访问抛出的volvo实例。 当谈论静态时,我们真正想说的是,在某些情况下,我们希望能够使用与类的实例无关的函数或属性。让我们假设我们拥有类car。
我们在类车中创建了一个名为gasPrice的静态成员
public class Car
{
public static double gasPrice =5;
public string Make { get; set; }
public string Model { get; set; }
public int Year { get; set; }
public string Colour { get; set; }
}
现在,此属性在car的所有实例之间共享...沃尔沃本田,无论如何...您不能仅对其中一个实例进行编辑。 gasPrice的值由类级别设置...现在,我们无法从其中一个实例访问它了... 我们只能从班级名称访问它,因为它与班级有关!
干杯!
答案 2 :(得分:-1)
以下代码可以解决您的问题
static void Main(string[] args)
{
Car myCar = new Car();
myCar.Make = "Ford";
myCar.Model = "Something";
myCar.Year = 2010;
myCar.Colour = "Blue";
Console.WriteLine(myCar.Stats());
Console.ReadKey();
}
public class Car
{
public string Make { get; set; }
public string Model { get; set; }
public int Year { get; set; }
public string Colour { get; set; }
public string Stats()
{
string restart = "false";
do
{
restart = "false";
Console.WriteLine("Press a to get the Make of the car");
Console.WriteLine("Press s to get the Model of the car");
Console.WriteLine("Press d to get the Year of the car");
Console.WriteLine("Press f to get the Colour of the car");
}
while (restart == "true");
string UserInput = Console.ReadLine();
if (UserInput == "a")
{
string UserOutput = Make;
return UserOutput;
}
if (UserInput == "s")
{
string UserOutput = Model;
return UserOutput;
}
if (UserInput == "d")
{
string UserOutput = Year.ToString();
return UserOutput;
}
if (UserInput == "f")
{
string UserOutput = Colour;
return UserOutput;
}
else
{
restart = "true";
string UserOutput = "I did not understand that";
return UserOutput;
}
}
}