加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 07:36:58 所属栏目:asp.Net 来源:网络整理
导读:我写了下面的代码来找出丢失的序列,但我收到错误,因为我提到这是我的代码 public partial class Missing : System.Web.UI.Page{protected void Page_Load(object sender,EventArgs e){ Listint daysOfMonth = new Listint() { 6,2,4,1,9,7,3,10,15,19,11,18,
我写了下面的代码来找出丢失的序列,但我收到错误,因为我提到这是我的代码

public partial class Missing : System.Web.UI.Page
{
protected void Page_Load(object sender,EventArgs e)
{
    List<int> daysOfMonth =
       new List<int>() { 6,2,4,1,9,7,3,10,15,19,11,18,13,22,24,20,27,31,25,28 };
    Response.Write("List of days:");
    foreach (var num in daysOfMonth)
    {
        Response.Write(num);
    }
    Response.Write("nnMissing days are: ");
    // Calling the Extension Method in the List of type int 
    foreach (var number in daysOfMonth.FindMissing()){Response.Write(number);}
}
public static IEnumerable<int> FindMissing(this List<int> list)
{
    // Sorting the list
    list.Sort();
    // First number of the list
    var firstNumber = list.First();
    // Last number of the list
    var lastNumber = list.Last();
    // Range that contains all numbers in the interval
    // [ firstNumber,lastNumber ]
    var range = Enumerable.Range(firstNumber,lastNumber - firstNumber);
    // Getting the set difference
    var missingNumbers = range.Except(list);
    return missingNumbers;
}

}

我得到的错误如下,扩展方法必须在非泛型静态类中定义,任何人都可以帮助我

解决方法

正如错误所述,扩展方法只能在非泛型静态类上声明.您正在尝试在Missing类中声明FindMissing方法,该类不是非泛型静态类.

您有两种选择:

>使方法成为常规方法,在这种情况下,它可以保留在Missing类中
>声明另一个类,可能是MissingExtensions,以包含该方法

这是第二个选项的样子:

public static class MissingExtensions
{
    public static IEnumerable<int> FindMissing(this List<int> list)
    {
        // ...
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读