好的,这是我在学校的任务。
开发一个捕获以下信息的Vehicle类:
一个。公司
湾模型
℃。 MRSP
d。创建的车辆数量。
开发一个类来测试您的Vehicle类。在本课程中,请执行以下操作:
一个。根据以下信息创建以下车辆:
Car: Model: MSRP:
Aston Martin Vantage $129,000
Ford Fusion $ 28,678.99
Honda Civic EX $ 18,713.27
湾通过购买本田思域来运用您的购买方式。
℃。使用您的打印方法打印出上述车辆的所有相关信息。
d。当你购买本田印刷品时,你买了本田。
这是我到目前为止提出的代码,但我不确定从这里开始或如何修复具有语法问题的部分。我绝对不确定我的BuyVehicle方法应该如何工作:
Program.cs的
using System;
namespace CreateVehicle
{
class Program
{
static void Main(string[] args)
{
Vehicle firstVehicle = new Vehicle("Aston Martin", "Vantage", 129000);
Console.WriteLine(firstVehicle.ToString());
firstVehicle.BuyVehicle(true);
Console.WriteLine("You bought a {0}", firstVehicle.Model);
Vehicle secondVehicle = new Vehicle("Ford", "Fusion", 28678.99);
Console.WriteLine(secondVehicle.ToString());
Vehicle thirdVehicle = new Vehicle("Honda", "Civic EX", 18713.27);
Console.WriteLine(thirdVehicle.ToString());
}
}
}
Vehicle.cs
using System;
namespace CreateVehicle
{
class Vehicle
{
public string companyName;
private static int totalVehicles = 0;
private string mModel;
private string mMSRP;
public Vehicle()
{
companyName = "Not assigned";
mModel = "Not assigned";
mMSRP = 0;
totalVehicles++;
}
public Vehicle(string companyName, string model, double price)
{
this.companyName = companyName;
mModel = model;
mMSRP = price;
totalVehicles++;
}
public string Model
{
get
{
return mModel;
}
}
public decimal MSRP
{
get
{
return mMSRP;
}
set
{
if (value >= 0)
{
mMSRP = value;
}
else
{
mMSRP = 0;
}
}
}
public string BuyVehicle(Boolean buy)
{
if (buy == true)
{
return mModel;
}
else
{
return "";
}
public override string ToString()
{
return "Vehicle Data: \n\t" +
"Company Name: " + companyName + "\n\t" +
"Model: " + mModel + "\n\t" +
"MSRP: " + mMSRP.ToString("C") + "\n\t" +
"Total vehicles: " + totalVehicles + "\n";
}
}
}
答案 0 :(得分:1)
看看mMSRP的变量声明?你已经将它声明为一个字符串,然后你将它指定为0.然后你的构造函数期望一个double,然后在你的访问器中你期望返回一个小数。这就是我告诉你单步执行代码的原因。不仅与vs,而且你的眼睛遵循其声明的路径。如果您仍然有错误让我知道错误是什么。本网站的目的是帮助您指明不给您答案的方向。你将学到更多的东西来解决它自己和满足感
答案 1 :(得分:1)
我同意zeencat 100%。真正学习东西的唯一方法就是自我发现。这样做可以让您在此过程中获得许多其他未知部分和最佳实践。鉴于你提到你是初学者,你的代码看起来并不那么糟糕,但是我确实注意到你班上应该注意的一些事情:
举一个例子:您的类属性(公共字符串companyName;)永远不应该是公共的,因为这允许最终用户有意或无意地破坏代码。这些字段应始终为私有字段。此外,在创建类属性时使用匈牙利表示法通常是一种好习惯,并且包括下划线以表示字段访问者状态(公共,私有等)
例如。 _strCompanyName;或_strMSRP;
这样做可以让您知道这是一个私有字符串变量。当您查看代码以便稍后进行调试时(如zeencat所指出的那样)使用_strmMsrp发现“类型不匹配”会更容易;
最后,在您声明变量之后初始化变量总是好的:
例如。 string myString =“”;或加倍myNumber = 0.0;或者bool isTrue = true;等。
这是我用来开始的C#基础知识教程系列的链接。 3年后,他们仍然是我见过的最好的。每节课和所给出的每个例子都是行业最佳实践。
祝你好运。