В чем ошибка, почему в метод передается null значение ref myStruct==null?
internal class MainClass1
{
[StructLayout(LayoutKind.Sequential)]
struct MyStruct
{
public int x;
public int count;
}
delegate void F(ref MyStruct s);
static F d;
static unsafe delegate*<ref MyStruct, void> createUnsafe(ref MyStruct s1, int x)
{
//var d;
d = (ref MyStruct s) =>
{
// s == null ???
// x случайное число, а не переданное
s.x = x;
Console.WriteLine(s .x );
};
// return (delegate*unmanaged<ref MyStruct, void>)Marshal.GetFunctionPointerForDelegate(d); туда же
return (delegate*<ref MyStruct, void>)d.Method.MethodHandle.GetFunctionPointer();
}
unsafe static void Main()
{
MyStruct myStruct = new MyStruct();
var d = createUnsafe(ref myStruct, 100);
d(ref myStruct);
}
}