关于c#:必须声明一个正文,因为它没有标记为抽象


must declare a body because it's not marked abstract

我有接口

1
2
3
4
5
6
7
INews.cs
public interface INews{
   int Id {get; set;}
   string Name {get; set;}
   void Add(News news);'
   void Remove(News news);
}

我有news.cs来实现这个接口

1
2
3
4
5
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?


你的职能需要机构:

1
2
3
4
5
6
7
8
9
public void Add(News news)
{

}

public void Remove(News news)
{

}

只有在抽象类中才允许没有实体的函数。


它是你的实现

1
2
3
4
5
6
7
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
}

至少应该是

1
2
3
4
5
6
7
8
9
10
11
12
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类,则该方法必须声明一个主体。

1
2
3
4
5
6
7
8
9
public void Add(News news)
{

}

public void Remove(News news)
{

}

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

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