没有给出与所需形式参数相对应的参数-这是什么意思?

时间:2019-01-03 12:17:01

标签: c#

我正在尝试调用该方法,但是由于某种原因它无法正常工作 有人可以告诉我如何建立更好的方法。

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;
                }
            }
        }
    }
}

3 个答案:

答案 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的值由类级别设置...现在,我们无法从其中一个实例访问它了... 我们只能从班级名称访问它,因为它与班级有关!

link for static explained

干杯!

答案 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;
                }
            }
        }
相关问题