你已经离开了两次花括号,并声称一个函数返回一个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)
{
}
}
}
你有一个与预期static void Main
入口点命名空间称为Program
类。它没有做任何事情,所以当你运行它时,没有什么会发生。如果您在调试器中运行它,您可能会打印出“按任意键继续”。
如果你想要发生什么,它需要代码在你的入口点 - 默认这个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();
}
}
}
最后,让我们的主要功能做一些事情:
public static void Main(string[] args)
{
var calculator = new Calculator();
calculator.DivideFinal();
}
这将导致一些错误,我们可以用另一种处理题。 例如,Convert.ToInt32
预计为String
,但您要给它的结果不是字符串Console.ReadKey
。您不妨考虑使用Console.ReadLine()
:例如,请参阅question。
从我所看到的,你的'Number03'属性在'get'访问器之后需要另一个右括号。 – ThePerplexedOne
谢谢,我修正了这个问题。 – CoadA
看看'double',整数除法并不是特别有用。如果你做了10/3,会打印什么? – Equalsk