C# 修饰符“抽象”对此项无效
本文关键字:无效 抽象 | 更新日期: 2023-09-27 17:48:54
我正在尝试构建另一个人的C#项目。在很多接口中,我收到错误:
The modifier 'abstract' is not valid for this item
在以下界面中:
namespace Services.Email
{
using System;
using System.Collections;
using.System.Collections.Generic;
using System.Runtime.CompilerServices;
public interface IEmailService
{
abstract event EventHandler<SendCompletedEventArgs> SendSummaryCompleted;
void SendNewsItem(DocumentNewsItem newsItem, string email);
void SendSummaryAsync(Session session, Advisor advisor);
}
}
只需删除abstract
,它不适用于接口。界面中的所有内容本质上都已经是"抽象的"。抽象类实际上在许多方面与具有未实现的所需接口的类相同。
请参阅此 MSDN 文章:http://msdn.microsoft.com/en-us/library/aa664580%28v=vs.71%29.aspx
所有接口成员都隐式具有公共访问权限。接口成员声明包含任何修饰符是一个编译时错误。特别是,不能使用修饰符抽象、公共、受保护、内部、私有、虚拟、覆盖或静态来声明接口成员。
解决方案:删除"抽象"修饰符
接口不允许
包含修饰符,如 abstract
, virtual
, public
, protected
, private
, ...
溶液:
只需将其删除即可。
在 .NET 和 C# 中,不支持接口中的成员修饰符。
如果你想要这样的东西,你最好将它们切换到抽象类,但恕我直言,这不是开发软件的好方法(重构代码而不考虑实际需求是什么)。
简单的解决方案:只需删除任何修饰符,保留任何类型的接口成员的类型、标识符和参数。
它确实是无效的。 删除抽象关键字并重新编译。