2010-05-26 48 views
2

如何使用指針?在C中使用指針#

+16

**不要**。 – SLaks 2010-05-26 14:40:37

+3

解釋你爲什麼要\需要使用指針。這應該會導致一些更好的答案和辯論。如果沒有上下文來說明使用它們的原因,那麼在C#中使用指針可能會被視爲頗具爭議。 – 2010-05-26 14:47:30

+0

如果這個主題不是重複的並且在某個地方,那麼社區wiki可能對那些來自語言的指針用法很普遍的人有幫助嗎? – 2010-05-26 14:51:07

回答

0

最好的做法是避免unsafe的代碼。所以不要在C#中使用指針。

+9

更好的建議是指出哪裏他們可能會有用而不是提供這樣一個全面的聲明。 – ChaosPandion 2010-05-26 14:41:07

1

除了已經指出應儘可能避免指針和不安全代碼的其他答案之外。

你想避免讓代碼遍佈全部代碼庫,所以我建議在所有不安全的調用之前編寫一個.Net包裝器,這樣你只需要在一個地方擔心它。可能甚至爲它創建一個類庫,但這取決於你在做什麼。

使用包裝的人會記得調用包裝的Dispose方法和類似的方法,以確保任何指針或其他非託管資源得到正確處理,但這與代碼的其餘部分沒有什麼不同。

+0

包裝類是一個好主意。你真的想把你的不安全的代碼保存在一個地方。 – ChaosPandion 2010-05-26 15:02:16

+0

在不調用dispose時實現Dispose **和**析構函數模式。 – 2010-05-26 15:21:57

2

已經說了足夠多的關於使用在C#中指針;不過如果你使用的話,這裏是你如何做到這一點的example

0

我知道這個話題是舊的,但我發現自己從C++切換到C#後,在某些情況下通過使用set/get屬性來模擬指針的行爲。 :)