SharpLab
SharpLab copied to clipboard
Static LINQ expression throws "Type C+<>c has a static constructor"
Maybe same as those other static related issues, but here I don't see a constructor... Should be fairly easy to support this?
using System.Linq;
using System.Collections.Generic;
public class C {
public void M() {
List<string> list = [];
var a = list.Select(static s=> s.Length < 10).ToList();
}
}
If you look at the Roslyn-generated code, you can see that there is a static object for the closure that is being initialized. So static constructor is automatically generated for it. IL output confirms this:
// Methods
.method private hidebysig specialname rtspecialname static
void .cctor () cil managed