方法必须声明一个体?

时间:2014-09-13 10:26:45

标签: c# windows project

这是我的任务:

  

使用。设计和实现弦乐器类   遵循指南:

     

您的乐器的数据字段应包括字符串数量,a   表示字符串名称的字符串名称数组(例如E,A,D,G)和   用于确定仪器是否已调谐的布尔字段,以及是否   乐器正在播放。欢迎您添加其他内容   数据字段,如果你愿意。

     

用于设置已调整和当前播放字段的构造方法   为假。其他方法

     
      
  1. 调整乐器,
  2.   
  3. 开始播放乐器,
  4.   
  5. 停止乐器演奏。
  6.         

    您认为合适的其他方法(添加至少一种唯一方法)。

         

    使用图表工具(例如PPT,Visio)创建UML类图   你的选择。准备图表并将它们放在Word文档中   以及您班级的简要说明。

         

    为您的乐器创建一个C#类。确保您的代码匹配   包括您的设计规格和一些最小功能。   例如,如果你调用了violin.play()方法,你应该在   小提琴正在播放的印数最少。类似的功能应该   当您停止播放,调整或调用任何方法时提供。

到目前为止我的代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;


   namespace StringedMusInsApp
   {

   public class Guitarra
   {
   public static void Main (string[] args);

       //variable that stores the guitarra's name
    private String nameValue;
    //variable to store strings
    private int numberOfStringsValue;
    private char[] stringsValue = { 'E', 'A', 'D', 'G', 'B', 'E' };
    //field for tune of the guitar,
    private bool tunedValue;
    //field for playing of guitar
    private bool playingValue;
    //method to set tune and playing false.
    public Guitarra()
    {
        this.tunedValue = false;
        this.playingValue = false;
    }
    // gets and sets
    public String Name
    {
        get
        {
            return nameValue;
        }
        set
        {
            nameValue = value;
        }
    }
    public int NumberOfStrings
    {
        get
        {
            return numberOfStringsValue;
        }
        set
        {
            numberOfStringsValue = value;
        }
    }
    public void DisplayStringValues()
    {
        Console.WriteLine("String Values: ");
        for (int i = 0; i < stringsValue.Length; i++)
        {
            Console.Write(stringsValue[i] + " ");
        }
        Console.WriteLine();
    }

    public bool Tuned
    {
        get
        {
            return tunedValue;
        }
        set
        {
            tunedValue = value;
        }
    }
    public bool Playing
    {
        get
        {
            return playingValue;
        }
        set
        {
            playingValue = value;
        }
    }
    //Method to play the violin
    public void playGuitar()
    {
        Console.WriteLine("The guitar is now playing.");
        Playing = true;
    }
    //Method to sto playing the violin
    public void stopGuitar()
    {
        Console.WriteLine("The guitar has stopped playing.");
        Playing = false;
    }
    //Method to tune the Guitar
    public void tuneGuitar()
    {
        Console.WriteLine("The guitar is tuned.");
        Tuned = true;
    }
    //Method to stop tuning the Guitar
    public void stopTuneGuitar()
    {
        Console.WriteLine("The guitar has stopped tuning.");
        Tuned = false;
      }
     }
    }

但是我收到了这个错误:

  

错误1'StringedMusInsApp.Guitarra.Main(string [])'必须声明一个正文,因为它没有标记为abstract,extern或partial。

1 个答案:

答案 0 :(得分:4)

错误消息告诉您完全出了什么问题:

  

'StringedMusInsApp.Guitarra.Main(string [])'必须声明一个正文,因为它没有标记为abstract,extern或partial。

查看Main(string[])的方法声明:

public static void Main (string[] args);

没有方法体。但由于它不是抽象的,外部的或部分的方法,它需要一个方法体。定义一个:

public static void Main (string[] args)
{
    // do something here
}

另请注意,如果您Main(string[])方法中执行任何操作,那么您的应用将无法执行任何操作。它只是立即打开和关闭而不执行任何代码。 Main(string[])方法是应用程序的入口点。

如果您将应用程序主机代码(入口点Main(string[]),基本上是执行程序的内容)与逻辑代码(Guitarra类分开,那么构建可能会变得更容易,任何与您正在做的事情相关的业务逻辑,等等)。对于这么小的东西,没有必要将它们拆分成自己的组件或使用DI或类似的东西,但它们至少应该是他们自己的类。