gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 15:35:35 29 4
gpt4 key购买 nike

我编写了以下代码来找出丢失的序列,但我收到错误,因为我提到这是我的代码

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("\n\nMissing 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 方法,该类不是非泛型静态类。

您有两个选择:

  1. 使该方法成为普通方法,在这种情况下,它可以保留在 Missing 类中
  2. 声明另一个类(可能是 MissingExtensions)来包含该方法

这就是第二个选项的样子:

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

关于asp.net - 扩展方法必须在非泛型静态类中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9238114/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com