C#不喜歡三分球,但我需要使用它們現在創建一個鏈表,就像我們會在C做的結構很簡單:指針在C#結構來創建一個鏈表
public unsafe struct Livro
{
public string name;
public Livro* next;
}
但我得到的錯誤:「無法獲取地址,獲取大小或聲明指向託管類型的指針」。有任何想法嗎?
C#不喜歡三分球,但我需要使用它們現在創建一個鏈表,就像我們會在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>
類。
Any ideas?
使用類,而不是一個結構,然後將指針變成一個參考:
public class Livro
{
public string name;
public Livro next;
}
然後它是使用屬性而不是公共領域是一個好主意。
問題是字符串聲明。你必須去低級別並使用char *指針。使用unsafe
自帶離開管理世界上所有的頭痛...
我認爲解決了這個問題。現在,我將嘗試使用char指針 – FilipeTR
@ user2383078 - 返回到C/C++或學習如何使用C#方法。字符指針會使更壞的解決方案變得更糟。 –
同意。早些時候他說:「這是C#......但老師想要指針」。那位老師應該爲教學指導鼓掌,但因爲使用錯誤的工具而被解僱。他會留下一大堆幾乎不瞭解指針的學生,但認爲將塊標記爲「不安全」是很好的做法,這樣他們可以利用指針進行低級別的處理,並且可以更「有效」地完成任務。 –
爲什麼不['名單'](http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx)? –
@WouterHuysentruit或'LinkedList'如果你想要一個鏈表;} –
@WouterHuysentruit如果你想插入/從中間刪除,並且不需要索引訪問,在很多情況下它會更好。 –