C#控制台程序,包含一个常量静态字段,用于在输出main方法中显示文本

Roc*_*cky 4 c#

使用C#作为MicroSoft Visual Studio 2010中的控制台程序,我已经对您进行了一些更改,并得到了一些帮助,并且此控制台程序运行正常; 但是我需要实现一个恒定的静态字段,它将在主方法的输出部分显示"遵守女童军法"的座右铭.我知道它一定很简单所以请耐心等待.当我在低音类中包含公共静态const字符串Motto ="To Obey the Girl Scout Law"时,我收到一条错误消息 - 常量'DemoScouts.GirlScout.Motto'不能是静态的.以下是该项目的完整代码:

公共课GirlScout {

    public static const string Motto = "To Obey the Girl Scout Law";  

    public static string scoutName;
    public static string enterName()
    {
        return scoutName;
    }

    public static int duesOwed;
    public static int enterAmount()
    {
        return duesOwed;
    }

    public static int troopNumber;
    public static int enterNumber()
    {
        return troopNumber;
    }
}

class MainClass : GirlScout
{
    static void Main()
    {
        Console.WriteLine();
        Console.Write("Enter the Girl Scout's name: ");
        GirlScout.scoutName = Console.ReadLine();
        Console.WriteLine();

        Console.Write("Enter their Troop Number: ");
        string n = Console.ReadLine();
        GirlScout.troopNumber = Int32.Parse(n);
        GirlScout.enterNumber();
        Console.WriteLine();

        Console.Write("Enter the amount they Owe in Dues: $");
        string d = Console.ReadLine();
        GirlScout.duesOwed = Int32.Parse(d);
        GirlScout.enterAmount();
        Console.WriteLine();

        // Seperate the input from the output:
        Console.WriteLine();
        Console.WriteLine(GirlScout.Motto);
        Console.WriteLine("-----------------------------------------------");
        Console.WriteLine();

        // Display the new information:
        Console.WriteLine("The name of the Girl Scout is: {0}", GirlScout.scoutName);
        Console.WriteLine("The troop Number of the Girl Scout is:   {0}", GirlScout.troopNumber);
        Console.WriteLine("The amount of Dues Owed by this Girl Scout is: {0}", GirlScout.duesOwed);

        // Keep the console window open in debug mode.
        Console.ReadKey();
    }
}
Run Code Online (Sandbox Code Playgroud)

}

任何和所有的建议将不胜感激.

Mar*_*ers 6

您没有使用用户输入的名称执行任何操作:

Console.Write("Enter the Girl Scout's name: ");
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

它应该是这样的:

Console.Write("Enter the Girl Scout's name: ");
GirlScout.scoutName = Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

您还需要将类型更改scoutNamestring而不是int.


你也应该重新设计你的课程.使用实例属性而不是静态字段.

public class GirlScout
{
    public string Motto { get; set; }
    public string ScoutName { get; set; }
    public int DuesOwed { get; set; }
    public int TroopNumber { get; set; }
}
Run Code Online (Sandbox Code Playgroud)