不包含 “ ” 的定义,也没有接受第一个参数的扩展方法

本文关键字:第一个 参数 方法 扩展 包含 定义 | 更新日期: 2023-09-27 18:33:40

i am having trouble with my set and gets in my test class. it says it does not 
包含 ____

__ 的定义,并且没有接受第一个参数的扩展方法。 我读过类似的问题,但我无法修复这些错误。 我该如何解决这个问题?具体来说,它说我的汽车类不包含定义

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Homework1 
{
    class Car
    {
        private string color;
        private int numOfWheels;
        private int startingPoint;
        private int mileage;
        private int currentSpeed;
        public Car()
        {
            color = "";
            NumOfWheels = 4;
            StartingPoint = 100000;
            CurrentSpeed = 0;
            Mileage = 0;
        }
        public Car(string color, int numOfWheels, int startingPoint, int currentSpeed, int mileage)
        {
            Color = color;
            NumOfWheels = numOfWheels;
            StartingPoint = startingPoint;
            CurrentSpeed = currentSpeed;
            Mileage = mileage;
        }
        public virtual string Color
        {
            get
            {
                return color;
            }
            set
            {
                color = value;
            }
        }
        public virtual int NumOfWheels
        {
            get
            {
                return numOfWheels;
            }
            set
            {
                numOfWheels = value;
            }
        }
        public virtual int StartingPoint
        {
            get
            {
                return startingPoint;
            }
            set
            {
                startingPoint = value;
            }
        }
        public virtual int CurrentSpeed
        {
            get
            {
                return currentSpeed;
            }
            set
            {
                currentSpeed = value;
            }
        }
        public virtual int Mileage
        {
            get
            {
                return mileage;
            }
            set
            {
                mileage = value;
            } 
        }

        public override string ToString()
        {
            return (" color " + color + " numOfWheels" + numOfWheels + "startingPoint " + startingPoint + "mileage" + mileage + "current speed" + currentSpeed);
        }
     }
}
********************************************************************************
///this is the test program
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Homework1
{
    class CarTest
    {
       static void Main(string[] args)
        {

            Car myCar = new Car();

                Console.WriteLine("*****************************"); 
                Console.WriteLine("*                           *"); 
                Console.WriteLine("*  WELCOME TO CAR MANAGER   *");
                Console.WriteLine("*    By <<my Name>>         *"); 
                Console.WriteLine("*                           *");
                Console.WriteLine("*****************************");

            Console.WriteLine("'nEnter the number of wheels of a car");
            int numOfWheels = Console.Read();
            myCar.setNumOfWheels(numOfWheels);

            Console.WriteLine("Enter the color of the car");
            String color = Console.ReadLine();
            Console.WriteLine("Current mileage will be set to zero");
            Console.WriteLine("The current starting point will be set to 100000");
            Console.Write("The current status of your car 'n{0:D} Wheels, 'n{1}, 'n{2:D} Miles and 'nCAR POINT = {3:D}", myCar.getNumOfWheels, 
            myCar.getColor, myCar.getMileage, myCar.getStartingPoint);
            Console.WriteLine("'nEnter the owner's name");
            String name = Console.ReadLine();
            Console.WriteLine("Enter the miles the car ran in this week");
            int milesThisWeek = Console.ReadLine();
            myCar.setMileage(Mileage);
            Console.WriteLine("This car is owned by n{1}", name); 

                Console.WriteLine("===>The current status of your car:");
            Console.WriteLine("Wheels: " + myCar.getWheels());
            Console.WriteLine("Color: " + myCar.getColor());
                Console.WriteLine("Current Mileage: " + myCar.getMileage());
            Console.WriteLine("Starting Point: " + myCar.getStartingPoint());
            Console.WriteLine("************ Thank you for using CAR MANAGER *************");
            Console.WriteLine("----------------------------------------------------------");
            Console.WriteLine("----------------------------------------------------------");
            Console.WriteLine("Press ENTER to close console…….");    
        }
    }
}

不包含 “ ” 的定义,也没有接受第一个参数的扩展方法

在您的 Car 类中,您具有此属性(以及其他属性):

    public virtual int NumOfWheels
    {
        get
        {
            return numOfWheels;
        }
        set
        {
            numOfWheels = value;
        }
    }

你尝试像这样使用它:

myCar.setNumOfWheels(numOfWheels);

setNumOfWheels()不存在。相反,您需要使用属性语法来使用NumOfWheels

myCar.NumOfWheels = 4; // sets the property 
Console.WriteLine(myCar.NumOfWheels); // gets the property

在此处查看更多内容。


顺便说一句,没有什么可以阻止您对属性使用自动属性语法。事实上,除了获取幕后的价值之外,他们什么也没做。因此,您可以省略显式私有变量,只需像这样声明NumOfWheels

public virtual int NumOfWheels { get; set; }

并获得与现在相同的行为。

相关文章: