我知道这个计算器可以比我写的简单得多,但我想了解它不能像我写的那样与属性一起使用的原因。我在一本书中读到我可以省略"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()
:例如,请参阅此问题。