【问题标题】:c# tests Class1' does not contain a definition for 'Function' [duplicate]c#tests Class1'不包含'Function'的定义[重复]
【发布时间】:2016-08-16 03:06:42
【问题描述】:

我对 mz 测试有问题 ..Class1' 不包含 'Function' 的定义,并且找不到接受类型为 'Class1' 的第一个参数的扩展方法 'Function'(您是否缺少 using 指令或程序集参考?) ClassTestProject2

我已经添加了对我的类 Class1 的引用到测试库中,对象也很好这是我的代码,我是 c# 的新手,所以我可能没有做我应该做的事情,sobebodz 有一些想法吗?谢谢你:)

测试:

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using ClassLibrary1;

namespace ClassTestProject2
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethodPlus()
        {
            double number1 = 9.0;
            double number2 = 1.0;
            string op = "plus";
            double expected = 9.0;
            Class1 count = new Class1();
            double actual = count.Function(number1, number2, op);
            Assert.AreEqual(expected, actual);
        }
   }
}

这是我的课:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClassLibrary1
{
    public class Class1
    {
        public static double Function(double num1, double num2, string op)
        {
        double finRes = 0;
        if (op == "plus")
        {
            finRes = num1 + num2;
        }
        else if (op == "minus")
        {
            finRes = num1 - num2;
        }
        else if (op == "multiple")
        {
            finRes = num1 * num2;
        }
        else if (op == "divide")
        {
            finRes = num1 / num2;
        }
        else if (op == "exp")
        {
            finRes = Math.Pow(num1, num2);
        }
        else if (op == "fac")
        {
            double result = num1;
            for (double i = (num1) - 1; i > 0; i--)
            {
                result = result * i;
                finRes = result;
            }
        }
        else if (op == "sqrt")
        {
            finRes = Math.Sqrt(num1);
        }
        return finRes;
    }
}
}

【问题讨论】:

  • 函数是静态的。你不要用你的实例化类调用它,你用 Class1.Function(...) 调用它
  • 以防万一:1.0+9.0 != 9.0

标签: c# testing


【解决方案1】:

您将Function 声明为静态,这意味着它只能被引用为“Class1.Function(...)”,而不能来自 Class1 的实例。

【讨论】:

  • 那我该怎么办?
  • 在这种情况下,可能删除count 变量并只使用Class1.Function(...)。只有当实例具有依赖于它的状态(例如局部变量)和/或行为时,创建实例才会有用。
  • 我做了orrection,但它仍然写错误'Class1'不包含'Function'的定义
  • 我只是擦除了所有内容并在我的目录中进行了清理,现在它看起来很好,谢谢
猜你喜欢
  • 1970-01-01
  • 2019-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多