我用。net 6创建了一个程序。当我创建添加一个类,然后在主实例化它。我得到错误
错误CS0246类型或命名空间名称'AbilityScoreCalculator'无法找到(您是否缺少using指令或程序集引用?)
类代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ability_Score_Calculator
{
internal class AbilityScoreCalculator
{
// ...
public void CalculateAbilityScore()
{
// ..
}
}
}
主方法代码
AbilityScoreCalculator calculator = new AbilityScoreCalculator();
然而,当我在。net 5中做同样的事情时,一切都很好,如下所示
类代码如上
主方法代码
using System;
namespace Ability_Score_Calculator
{
internal class Program
{
static void Main(string[] args)
{
AbilityScoreCalculator calculator = new AbilityScoreCalculator();
}
}
}
我假设你的。net 6"主方法代码"正在使用顶级语句,其中
AbilityScoreCalculator calculator = new AbilityScoreCalculator();
是Program.cs文件的全部内容。没有显式类,没有花括号,没有其他任何东西。
当您使用Top Level Statements时,该文件中的代码不属于任何名称空间(这在技术上可能不是为真,但实际上已经足够好了)。正因为如此,编译器是正确的,它不知道AbilityScoreCalculator
类型。您需要使用using
语句将它引入作用域。
// this is the ENTIRE contents of the Program.cs file
using Ability_Score_Calculator;
AbilityScoreCalculator calculator = new AbilityScoreCalculator();