必须声明一个主体,因为它没有标记为abstract

本文关键字:因为 abstract 记为 主体 声明 一个 | 更新日期: 2023-09-27 18:13:44

我有接口

INews.cs
public interface INews{
   int Id {get; set;}
   string Name {get; set;}
   void Add(News news);
   void Remove(News news);
}

我有news。cs它实现了这个接口

public class News : INews {
  public int Id {get; set;}
  public string Name {get; set;}
  public void Add(News news);
  public void Remove(News news);

}

上编译,我有以下消息必须声明一个主体,因为它没有标记为abstract

这是否意味着我应该在News类的构造函数中声明body ?

必须声明一个主体,因为它没有标记为abstract

这是你的实现

public class News: INews
{
  public int Id {get; set;}
  public string Name {get; set;}
  public void Add(News news); //<-- invalid
  public void Remove(News news); //<-- invalid
}

至少应该是

public class News: INews
{
  public int Id {get; set;}
  public string Name {get; set;}
  public void Add(News news){
  }
  public void Remove(News news){
  }
}

你的函数需要主体:

public void Add(News news)
{
} 
public void Remove(News news)
{
}

没有主体的函数只允许在抽象类中使用。

这意味着你没有把你的News类变成abstract类。

在非abstract类中,方法必须有实现,而不仅仅是声明。

如果它的不是一个abstract

方法必须声明一个主体
public void Add(News news)
{
}
public void Remove(News news)
{
}

我希望这能奏效。

主体必须包含在花括号内

索尔:

public void Add(News news)
{
}
public void Remove(News news)
{
}

任何抽象类都应该有一个声明