【问题标题】:Extension method must be defined in a non-generic static class while extending Task class扩展Task类时必须在非泛型静态类中定义扩展方法
【发布时间】:2012-11-08 09:28:22
【问题描述】:

我正在尝试扩展 Task 类,但我得到两个不同的错误,具体取决于我如何扩展它: 第一个:

public class ExtTask : Task
{
    public static void DoSomenthing(this Task task)
    {
        //some code
    }
}

扩展方法必须定义在非泛型静态类中

所以我添加了静态:

public static class ExtTask : Task
{
    public static void DoSomenthing(this Task task)
    {
        //some code
    }
}

得到错误:

静态类“DownloadFile.ExtTask”不能从类型“System.Threading.Tasks.Task”派生。静态类必须派生自对象。

我该如何解决这个问题?

【问题讨论】:

  • 您正在尝试从任务派生,这是不必要的(对于静态类也是不可能的)。删除继承并保持类静态。

标签: c# extension-methods


【解决方案1】:

如果你尝试添加扩展方法,你不需要从任务派生,将其更改为

public static class ExtTask
{
    public static void DoSomenthing(this Task task)
    {
        //some code
    }
}

【讨论】:

    猜你喜欢
    • 2023-03-10
    • 2012-01-01
    • 2016-10-25
    • 2014-10-31
    • 2014-12-23
    相关资源
    最近更新 更多