c# - 访问构造函数值
问题描述
我正在尝试访问我的代码中的值。我有两个课程,carex 和引擎。
引擎类具有以下代码:
public class Engine
{
public string Size;
public int HorsePower;
public float FuelConsumtionRate;
public Engine()
{
}
public Engine(string cylinder, int hp, float fuelRate)
{
Size = cylinder;
Console.WriteLine($"Engine type: {cylinder}");
HorsePower = hp;
Console.WriteLine($"Horse power: {hp} hp");
FuelConsumtionRate = fuelRate;
Console.WriteLine($"Fuel consumption: {fuelRate} l/h");
}
}
carex 类具有以下代码:
public class CarEx
{
string Manfacturer;
string RegistrationNr;
float Fuel;
float Speed;
bool IsRunning;
public CarEx(string manuf, float fuel, string regNr)
{
Manfacturer = manuf;
this.Fuel = fuel;
RegistrationNr = regNr;
Console.WriteLine("_____________________________________________________");
Console.WriteLine($"Manufacturer; {manuf}, Fuel amount: {fuel}l, License: {regNr}");
Console.WriteLine("______________________________________________________");
}
public void ChooseEngineType()
{
Engine v4 = new Engine("v4", 200, 0.7f);
}
public void FillFuel(float amount)
{
Fuel += amount;
/*
Fuel -= 0.7f;
*/
}
public static void RunCar()
{
CarEx car1 = new CarEx("Saab", 10, "1234DD");
car1.CallCustomer();
Console.WriteLine($"Maker: {car1.Manfacturer}");
Console.WriteLine($"Registration nr: {car1.RegistrationNr}");
}
}
我想替换硬编码的油耗率
燃料 -= 0.7f;
我用引擎构造函数中设置的值将其注释掉,因此不再对其进行硬编码。
我错过了什么?
解决方案
您的ChooseEngineType
方法创建了一个Engine
对象,但它存储在一个局部变量中,该变量在方法结束后立即停止存在。
将该变量更改Engine engine
为类级别的字段或属性,然后您可以在所有方法中使用engine
其属性。engine.FuelConsumtionRate
(PS,该属性的正确拼写是FuelConsumptionRate)
推荐阅读
- c# - ASP.NET Core MVC:查看模型 IList 到 ICollection
- android - 如何在android中获取和设置从一个活动到另一个活动的字符串?
- java - 需要帮助动画图像遵循 JavaFX 中的循环路径
- matlab - 具有去趋势和移位的 MATLAB FFT 波形图只有一个尖峰
- python - 从 Python 中的新矩阵中删除列而不更改原始矩阵
- php - mPDF 错误:数据已发送到输出,无法输出 PDF 文件
- javascript - 尝试访问嵌套在数组中的对象的属性时未定义类型
- pip - 错误:没有为 virtualemwrapper-win 找到匹配的发行版
- android - 地方 API 不工作。错误:您必须在 Google Cloud 项目上启用结算功能
- arrays - 在 Kotlin 中调用类的数组时,如何在函数中指定元素?