具有属性的简单 C# 计算器



我知道这个计算器可以比我写的简单得多,但我想了解它不能像我写的那样与属性一起使用的原因。我在一本书中读到我可以省略"set"访问器,但是当我这样做时,我遇到了更多的错误。我也收到主方法错误。任何帮助将不胜感激。 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。 它有助于一次修复一件事 - 实际上尝试一次只编写少量代码,边走边编译。如果您看不到问题所在,请注释掉大块,并尝试保持代码整齐排列,以便您可以看到可能错过大括号或类似内容的地方。

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():例如,请参阅此问题。

最新更新