错误 CS0119;class 是一种类型,在给定的上下文中无效

熟悉 C# 后,在进行断言的行上进行单元测试时,我收到以下错误Assert.IsInstanceTypeOf

Error CS0119 'Product' is a type, which is not valid in the given context

创建类型的事情已经执行了。是什么导致了这个错误?

单元测试1.cs

using Microsoft.VisualStudio.TestTools.UnitTesting;
using ProductNamespace;

namespace TestProject2
{
    [TestClass]
    public class TestProduct
    {
        [TestMethod]
        public void TestNewProduct()
        {
            Product mock_product = new Product(4.95);
            Assert.IsInstanceOfType(mock_product, Product);
        }
    }
}

产品.cs

namespace ProductNamespace
{
    public class Product
    {
        private double price;

        public Product(double price)
        {
            this.price = price;
        }
    }
}

回答

看起来您正在尝试使用该IsInstanceOfType(object, Type)方法。为此,您需要提供一个Type参数,但目前您刚刚直接指定了类名。这不是有效的 C# 表达式 - 您需要使用typeof运算符Type从类名中获取 a :

Assert.IsInstanceOfType(mock_product, typeof(Product));

请注意,这确实不是一个有用的测试 - 您没有测试任何有关代码的内容,您实际上是在询问 .NET 是否正常运行。如果代码到达该行(即,如果构造函数没有抛出异常)那么它一定会通过——因为 的结果new Xyz总是一个Xyz. (在 COM 接口周围有一个轻微的边缘情况,但它在这里不相关。)


以上是错误 CS0119;class 是一种类型,在给定的上下文中无效的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>