如何在C#中创建一个新的不安全的struct实例?

时间:2018-02-04 02:51:07

标签: c# pointers

实际上我正在使用指针c#aplication。 我已经创建了这个结构。

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();,但也失败了。

2 个答案:

答案 0 :(得分:0)

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

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 };
         // ...
     }
}

答案 1 :(得分:-1)

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

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

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