C#不喜欢三分球,但我需要使用它们现在创建一个链表,就像我们会在C做的结构很简单:
public unsafe struct Livro
{
public string name;
public Livro* next;
}
但我得到的错误:“不能走的地址,获取的大小,或宣布一个指向托管类型”。 有任何想法吗?
C#不喜欢三分球,但我需要使用它们现在创建一个链表,就像我们会在C做的结构很简单:
public unsafe struct Livro
{
public string name;
public Livro* next;
}
但我得到的错误:“不能走的地址,获取的大小,或宣布一个指向托管类型”。 有任何想法吗?
你可以只用一个class
,而不是一个struct
:
public class Livro
{
public string Name { get; set; }
public Livro Next { get; set; }
}
这将自动提供正确的行为。
话虽这么说,您可能希望只使用LinkedList<T>
直接从类的框架。
问题是字符串声明。 你必须去低级别和使用的char *指针。 使用unsafe
自带离开管理的世界上所有的头痛...
有任何想法吗?
使用一类,而不是一个结构,然后将指针变为参考:
public class Livro
{
public string name;
public Livro next;
}
然后它会使用属性而不是公共领域是一个好主意。
你可以用这样的结构做到这一点:
struct LinkedList
{
public int data;
public LinkedListPtr next;
public class LinkedListPtr
{
public LinkedList list;
}
}
或者是这样的:
struct LinkedList
{
public int data;
public LinkedList[] next;
}
但最好只使用class
的链表来代替。