首页 > 解决方案 > 缺少 using 指令

问题描述

全新的 C# 并尝试编写测试程序。但是,我收到以下错误:

TypeTests.cs(30,41):错误 CS0246:找不到类型或命名空间名称“book”(您是否缺少 using 指令或程序集引用?) [C:\dev\gradebook\test\GradeBook.tests \GradeBook.tests.csproj] TypeTests.cs(45,37):错误 CS0246:找不到类型或命名空间名称“book”(您是否缺少 using 指令或程序集引用?) [C:\dev\ Gradebook\test\GradeBook.tests\GradeBook.tests.csproj] TypeTests.cs(86,9):错误 CS0246:找不到类型或命名空间名称“book”(您是否缺少 using 指令或程序集引用? ) [C:\dev\gradebook\test\GradeBook.tests\GradeBook.tests.csproj]

尝试重建并重新添加 xunit

using System;
using Xunit;

namespace GradeBook.tests
{
    public class TypeTests
    {
         [Fact]
         public void Test1() 
         {
             var x = GetInt();

             Assert.Equal(3, x);
         }

         private int GetInt() 
         {
             return 3;
         }

         [Fact]
        public void CSharpCanPassByRef()
        {
            var book1 = GetBook("Book 1");
            GetBookSetName(ref book1, "New Name");

            Assert.Equal("Book 1", book1.name);

        }
        private void GetBookSetName(ref Book book, string name) 
        {
            book = new Book(name); 
        }

         [Fact]
        public void CSharpIsPassByValue()
        {
            var book1 = GetBook("Book 1");
            GetBookSetName(book1, "New Name");

            Assert.Equal("Book 1", book1.name);

        }

        private void GetBookSetName(Book book, string name) 
        {
            book = new Book(name);

        }
        [Fact]
        public void CanSetNameFromReference()
        {
            var book1 = GetBook("Book 1");
            SetName(book1, "New Name");

            Assert.Equal("New Name", book1.name);

            }

        private void SetName(BookTests book, string name) 
        {
            book.Name = name;
        }
        [Fact]
        public void GetBookReturnDifferentObject() 
        {
            var book1 = GetBook("Book 1");
            var book2 = GetBook("Book 2");

            Assert.Equal("Book1", book1.name);
            Assert.Equal("Book2", book2.name);
            Assert.NotSame(book1, book2);
        }


        [Fact]
        public void TwoVarsCanReferenceSameObject()
        {
            var book1 = GetBook("Book 1");
            var book2 = book1;

            Assert.Same(book1, book2);
            Assert.True(Object.ReferenceEquals(book1, book2));
        }

        Book GetBook(string name) 
        {
            return new Book(name);
        }
    }
}

标签: c#directiveusing

解决方案


要解决此问题,您需要引用您的项目

  1. 在终端添加dotnet 添加引用

例子

dotnet add reference <PROJECT> ..\..\src\GradeBook\GradeBook.csproj
  1. 检查您的 cs 文件并查看创建类的命名空间public class Book
  2. 如果命名空间使用,GradeBook那么您namespace GradeBook.tests需要更改为namespace GradeBook

推荐阅读