如何在 C# 中创建新的不安全结构实例



>实际上我正在处理指针 c# 应用程序。我已经创建了这个结构。

public unsafe struct Aris
{
    public Aris* sig;
    public int pes;
}

unsafe class Nodo
{
     // Here I am trying to create a new instance
     void insertAris(Aris *start)
     {
         Aris* newAris; 
         newAris->sig = null;
     }
}

我无法创建新的 Aris 实例,我也尝试了Aris * newAris = new newAris();,但这也失败了。

您的代码看起来像一个C++移植到使用指针作为引用的结构C#.NET你应该避免以这种方式使用指针(毕竟,它是一个使用垃圾收集器的框架,指针必须固定到位(,你应该改用引用类型(类(:

public class Aris
{
    public Aris sig;
    public int pes;
}
public class Nodo
{
     public void InsertAris(Aris *start)
     {
         Aris newAris = new Aris { sig = null, pes = 0 };
         // ...
     }
}

解决方案:
要正确定义结构,您必须这样做。

ExampleStruct es = new ExampleStruct{ exampleInt = 1, exampleInt2 = 2  };

至于你的方法,我也注意到你正在创建一个未定义的var Aris* sig,当我认为你打算做Aris* sig = start时。

最新更新