首页 > 解决方案 > 错误:必须声明一个主体,因为它没有标记为抽象或外部

问题描述

csc.exe在Win10 上编译时清除此错误有点问题。我对 C# 很陌生。在我一月份开始上课之前做一些自学。

按照“TeamTreehouse”教程执行此操作。他们mono在他们的工作空间中使用。我更喜欢vscode在我的机器上使用来熟悉在单声道之外使用 C#。

从我在 CS0501 上读到的问题来看,这是一个编译器问题,不应该是问题,但使用csc.exe会导致问题。添加abstract会带来一系列全新的问题。

从终端使用编译器的命令是csc *.cs

我不确定下一步该去哪里寻找解决方案。我一直无法使用所谓的Auto-Implemented Properties.

错误是

Invader.cs(6,39):错误 CS0501:“TreehouseDefense.Invader.Location.get”必须声明一个主体,因为它没有标记为抽象或外部

Invader.cs(6,52):错误 CS0501:“TreehouseDefense.Invader.Location.set”必须声明一个主体,因为它没有标记为抽象或外部

代码 Invader.cs

namespace TreehouseDefense {

    class Invader {

        public MapLocation Location { get; private set; }

    }
}

项目 Object_Project.csproj

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>

</Project>

标签: c#windowsvisual-studio-codecsc

解决方案


您使用的是 2005 年的 C# 2 编译器。C# 2 不支持自动实现的属性 - 以及现代 C# 中的各种其他功能。

您想要运行 C# 7 编译器。我建议安装Visual Studio 2017 Community Edition并使用 Visual Studio 2017 命令提示符,以便正确的版本csc在路径上。

或者只需下载.NET Core SDK并使用dotnet命令来构建和运行,而不是csc.


推荐阅读