我是C#的初学者,需要帮助创建一个合适的方法

时间:2012-07-29 19:57:43

标签: c# visual-studio-2010 class methods

好的,这是我在学校的任务。

  1. 创建名为CreateVehicle的控制台应用程序。
  2. 开发一个捕获以下信息的Vehicle类:

    一个。公司

    湾模型

    ℃。 MRSP

    d。创建的车辆数量。

  3. 您的类应该有一个null构造函数和至少一个额外的构造函数来收集有关创建的完整信息。
  4. 有办法买车。
  5. 创建一种有效的方式来打印车辆上收集的所有信息。
  6. 开发一个类来测试您的Vehicle类。在本课程中,请执行以下操作:

    一个。根据以下信息创建以下车辆:

    Car:          Model:    MSRP:
    Aston Martin  Vantage   $129,000
    Ford          Fusion    $ 28,678.99
    Honda         Civic EX  $ 18,713.27
    

    湾通过购买本田思域来运用您的购买方式。

    ℃。使用您的打印方法打印出上述车辆的所有相关信息。

    d。当你购买本田印刷品时,你买了本田。

  7. 奖励积分(10)。在您的班级中加入一个标志项,告知您是否购买了创建的车辆的状态,并在整个车辆类打印方法中打印出该状态。
  8. 这是我到目前为止提出的代码,但我不确定从这里开始或如何修复具有语法问题的部分。我绝对不确定我的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";
            }
        }
    }
    

2 个答案:

答案 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年后,他们仍然是我见过的最好的。每节课和所给出的每个例子都是行业最佳实践。

c# tutorial for beginners

祝你好运。