我正在解决这个难题,它是在称为“计算器”的控制台应用程序中创建的,它希望我创建4个与计算器有关的方法。
实现方法: 加 减去 乘 除
每个方法将接受两个整数,并且它们将返回一个值。
但是在另一个称为“计算器测试”的控制台应用程序中,将调用这些方法并添加值。我必须运行测试,如果测试成功,那么挑战就完成了。
查看下面的“计算器测试”代码。
我确实弄乱了代码,所以确实犯了一些明显的错误,但是,这让我抓狂了。
我实现了这些功能,并按照挑战的要求添加了两个整数。
本来我还有其他绳子,但是它们错了,对挑战没有用。
计算器代码:
using System;
namespace code_challenge.Challenges
{
public class Calculator
{
public static void Main(string[] args)
{
// Implement the add function below here
public void Add(int num1, int num2)
{
Console.WriteLine(num1 + num2);
}
// Implement the subtract function below here
public void Subtract(int num1, int num2)
{
Console.WriteLine(num1 - num2);
}
// Implement the multiply function below here
public void Multiply(int num1, int num2)
{
Console.WriteLine(num1 * num2);
}
// Implement the divide function below here
public void Divide(int num1, int num2)
{
Console.WriteLine(num1 / num2);
}
}
CalculatorTests的代码:
namespace code_challenge.Tests
{
[TestFixture()]
public class CalculatorTests
{
readonly Calculator calculator = new Calculator();
[Test()]
public void TestAddition()
{
Assert.AreEqual(4, calculator.Add(2, 2));
}
[Test()]
public void TestSubtraction()
{
Assert.AreEqual(2, calculator.Subtract(4, 2));
}
[Test()]
public void TestMultiplication()
{
Assert.AreEqual(6, calculator.Multiply(2, 3));
}
[Test()]
public void TestDivision()
{
Assert.AreEqual(2, calculator.Divide(6, 3));
}
}
预期结果:传入两个int数,并让Calculator Test函数使用其默认数进行计算。
实际结果:“修饰符'public'对此项目无效”,“程序不包含适用于入口点的静态'Main'方法,并且''Calculator'不包含Add /的定义减/乘/除,找不到可以接受的扩展方法“加/减/乘/除”,它接受类型为“计算器”的第一个参数。
答案 0 :(得分:0)
您在Main方法中将Calculator的方法定义为局部函数。公共访问修饰符对本地功能无效。这就是为什么您遇到第一个错误的原因。这似乎也就是为什么您的测试没有“看到”要测试的方法的原因(它们在Main内部,并且不可见)。
由于我看不到代码的其余部分,所以我无法告诉您为什么您的程序没有合适的Main方法。
实际上,如果您的任务是编写一个类并进行单元测试,则可以创建一个类库项目,在其中编写Calculator类,并在其中创建单元测试项目。您不必为此创建控制台应用程序(除非您希望有其他与计算器进行交互的方式,例如使用控制台)。