盖特斯塞特斯汽车财产问题

本文关键字:问题 财产 汽车 | 更新日期: 2024-11-03 17:10:11

在自动属性方面遇到问题。这是我课堂上的片段:

 class Car
{
    string brand;
    string model;
    Engine CarEngine {get; set;}

现在类引擎:

class Engine
{
    double FuelCap { get; }
    double fuelCapDefault = 50;
    double FuelCount { get; set;}
    double engineCap;

我用构造函数创建了一个对象:

  public Car(string brand, string model, double engineCap, double FuelCount, double FuelCap)
    {
        this.brand = brand;
        this.model = model;
        this.CarEngine = new Engine(engineCap, FuelCount, FuelCap);
    }

和引擎的构造函数:

public Engine(double engineCap, double FuelCount, double FuelCap)
    {
        this.engineCap = engineCap;
        this.FuelCount = FuelCount;
        this.FuelCap = FuelCap;
    }

我创建了一个对象:

 Car car = new Car(x, y, z, a, b);

现在进入重点,最后:

我正在尝试进入汽车。CarEngine.FuelCount在我的主程序中获取值,但Visual甚至没有建议我使用CarEngine。我是整个汽车属性的新手。我做错了什么?

盖特斯塞特斯汽车财产问题

您声明的所有属性都没有任何modifier,因此默认情况下它们是private 。这意味着只能在声明类中访问它们。

标记它们public将解决问题。

所有类型和类型成员都有一个辅助功能级别,该级别控制是否可以从程序集中的其他代码或其他程序集使用它们。声明类型或成员时,可以使用以下访问修饰符指定类型或成员的可访问性:

public 类型或成员可由同一程序集中的任何其他代码或引用它的其他程序集访问。

private 类型或成员只能由同一类或结构中的代码访问。

有关完整列表,请参见访问修饰符(C# 编程指南)