簡體   English   中英

具有屬性的簡單C#計算器

[英]Simple C# Calculator with Properties

我知道該計算器的編寫過程比我寫的要簡單得多,但是我想了解它不能按我編寫的方式與Properties一起工作的原因。 我在一本書中讀到可以省略“設置”訪問器的信息,但這樣做時會遇到更多錯誤。 我也收到Main方法錯誤。 任何幫助,將不勝感激。 行1(CS5001),9(CS5113)和26(CS0161)。

using System;

namespace Calculator
{
class Program
{
    public static void Main(string[] args)

    { 

    public int number01;
    public int number02;
    public int Number03

    {
        get

        {
            return number02 / number01;
        }
    }

    class Program1 : Program
    {

        public int DivideFinal()
        {

            Console.Write("Enter a number to be divided: ");
            Console.ReadKey();
            number01 = Convert.ToInt32(Console.ReadKey());
            Console.WriteLine("Enter another number to be divided");
            number02 = Convert.ToInt32(Console.ReadKey());
            Console.WriteLine("The result is: " + Number03);
            Console.ReadKey();
        } 

}

}

}

您省略了兩個右花括號,並聲明函數返回一個int ,而該int實際上不返回任何內容。 它可以一次修復一件事,並且實際上每次嘗試只編寫很少的代碼,隨您的需要進行編譯,這很有幫助。 如果看不到錯誤,請注釋掉大塊,並嘗試使代碼整齊排列,以便查看可能遺漏了括號或類似內容的位置。

using System;

namespace Calculator
{
    class Program
    {
        public static void Main(string[] args)
        {

        }//<-----------

        public int number01;
        public int number02;
        public int Number03
        {
            get
            {
                return number02 / number01;
            }
        }//<----------

        class Program1 : Program
        {

            public void DivideFinal()//<---- void not int
            {
                Console.Write("Enter a number to be divided: ");
                Console.ReadKey();
                number01 = Convert.ToInt32(Console.ReadKey());
                Console.WriteLine("Enter another number to be divided");
                number02 = Convert.ToInt32(Console.ReadKey());
                Console.WriteLine("The result is: " + Number03);
                Console.ReadKey();
            }
        }

    }
}

正確-現在我們可以編譯它,讓我們看一下您所擁有的本質。

namespace Calculator
{
    class Program
    {
        public static void Main(string[] args)
        {
        }
    }
}

您在名稱空間中有一個名為Program的類,該類具有預期的static void Main入口點。 它什么也沒做,所以當您運行它時,什么也不會發生。 如果在調試器中運行它,則可能會顯示“按任意鍵繼續”。

如果您希望發生某些事情,則它需要在您的入口點添加代碼-默認情況下,此Main函數。

您已向此類添加了一些不使用的屬性。 您已經開始在該類內部編寫另一個類,稱為Program1 該類也從該類繼承。

考慮改為將其稱為Calculator ,因為這就是您要編寫的內容。 它不需要從您的主類繼承-它們是無關的。 只在新文件中創建一個新類要整齊。

開始一個類,並在其中添加屬性和其他方法,例如DivideFinal (順便說一句,為什么叫它DivideFinal ?)

namespace Calculator
{
    class Calculator
    {
        public int number01;
        public int number02;
        public int Number03
        {
            get
            {
                return number02 / number01;
            }
        }

        public void DivideFinal()
        {
            Console.Write("Enter a number to be divided: ");
            Console.ReadKey();
            number01 = Convert.ToInt32(Console.ReadKey());
            Console.WriteLine("Enter another number to be divided");
            number02 = Convert.ToInt32(Console.ReadKey());
            Console.WriteLine("The result is: " + Number03);
            Console.ReadKey();
        }
    }
}

最后,讓main函數執行以下操作:

    public static void Main(string[] args)
    {
        var calculator = new Calculator();
        calculator.DivideFinal();
    }

這將導致一些錯誤,我們可以在另一個問題中解決。 例如, Convert.ToInt32需要一個String但您給它的結果不是字符串的Console.ReadKey 您可能希望考慮使用Console.ReadLine() :例如,請參見此問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM