C# 没有给出与所需形式参数对应的参数-这意味着什么?
我试图调用该方法,但由于某些原因,它无法工作 有人能告诉我如何建立一个更好的方法吗C# 没有给出与所需形式参数对应的参数-这意味着什么?,c#,C#,我试图调用该方法,但由于某些原因,它无法工作 有人能告诉我如何建立一个更好的方法吗 namespace ObjectsLifeTime { class Program { static void Main(string[] args) { Car myCar = new Car(); myCar.Make = "Ford"; myCar.Model = "Something"
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;
}
}
}
}
}
下面的代码应该可以解决您的问题
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;
}
}
}
您的Stats函数是静态的。 如果您是故意这样做的,那么您可以通过类名Car.Stats访问它
如果您想从Car类的每个实例访问它,那么您需要使一个常规函数删除静态…在面向对象编程中,类是某种东西的模板。。。我喜欢汽车。 Car是模板,但沃尔沃就是Car的一个例子。 沃尔沃是用汽车的模板制造的,但它只是一个单一的例子。 类car中定义的所有属性和函数都可以通过实例访问。 当谈到静态时,我们真正想说的是,在某些情况下,我们希望能够使用与类实例无关的函数或属性。。让我们假设我们有一流的汽车 在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值。。。现在我们可以感觉到,我们无法从其中一个实例访问它。。。
我们只能从类名访问它,因为它与类相关
干杯 如果您更多地解释您正在做的事情以及失败的具体原因,而不是重复您的文本以满足字符数要求,该怎么办;可能应该是Console.WriteLineCar.StatsmyCar;或者,如果您不想进行更改,请改为将公共静态字符串statsar car{更改为公共字符串Stats{var car=this;。谢谢您的帮助,但是静态实际上做了什么?请您举个例子——我所看到的任何地方都太模糊或过于复杂