【问题标题】:Working with pointers in C#在 C# 中使用指针
【发布时间】:2010-05-26 14:36:42
【问题描述】:

如何使用指针?

【问题讨论】:

  • 不要​​​​​​t.
  • 解释为什么你想\需要使用指针。这应该会引发一些更好的答案和辩论。如果没有上下文说明为什么要使用指针,那么在 C# 中使用指针可能会引起很大争议。
  • 如果这个主题不是重复的并且去了某个地方,也许社区 wiki 对那些来自指针使用常见语言的人会有所帮助?
  • 这有点没有重点,你有什么特定的目的吗?
  • 我听说你在考虑之前先阅读 C# 语言规范的不安全代码章节两次msdn.microsoft.com/en-us/vcsharp/aa336809.aspx

标签: c# pointers


【解决方案1】:

关于使用 C#中的指针,已经说得够多了;尽管如此,如果你使用,这里是一个example,你可以如何做到这一点。

【讨论】:

    【解决方案2】:

    除了已经指出应该尽可能避免使用指针和不安全代码的其他答案。

    您希望避免unsafe 代码散布在您的代码库中,因此我建议您在所有不安全的调用之上编写一个 .Net 包装器,这样您只需在一个地方担心它。甚至可能为它创建一个类库,但这取决于你到底在做什么。

    使用包装器的人记得调用包装器的 Dispose 方法和类似方法以确保正确处理任何指针或其他非托管资源显然非常重要,但这与您的其余代码没有什么不同.

    【讨论】:

    • 包装类是个好主意。你真的想把不安全的代码放在一个地方。
    • 在不调用 dispose 时实现 Dispose 析构函数模式。
    【解决方案3】:

    最佳做法是避免使用unsafe 代码。所以不要在 C# 中使用指针。

    【讨论】:

    • 更好的建议是指出它们可能有用的地方,而不是提供如此笼统的陈述。
    【解决方案4】:

    我知道这个话题已经过时了,但我发现自己在从 C++ 切换到 C# 之后,在某些情况下仅通过使用 set/get 属性来模拟指针的行为。 :)

    【讨论】:

      猜你喜欢
      • 2012-02-25
      • 1970-01-01
      • 2022-11-14
      • 2018-04-22
      • 2011-05-18
      • 2011-01-11
      • 2014-12-21
      • 1970-01-01
      • 2011-04-24
      相关资源
      最近更新 更多