相当于 C# 中的 C 结构

Posted

技术标签:

【中文标题】相当于 C# 中的 C 结构【英文标题】:equivalent of C struct in C# 【发布时间】:2011-03-19 18:00:34 【问题描述】:

有人可以帮我看看这个 C 代码在 C# 中的等价物吗?

struct  int left, right;  stack[MAX];

谢谢!

【问题讨论】:

【参考方案1】:
public struct PickAName

     public int left;
     public int right;


private const int MAX = 666;
PickAName[] stack = new PickAName[MAX];

或:

Stack<PickAName> stack = new Stack<PickAName>();

【讨论】:

没有理由仅仅因为它以 C 开头就削弱 C# 代码。Stack&lt;PickAName&gt; 应该始终是首选。 @Hans Passant:我几乎没有 C# 的经验,我只是给了他他要的翻译【参考方案2】:
public struct PickAName

     public int left;
     public int right;

不确定 stack[MAX] 的作用。

如果您想在伪代码术语中使用“堆栈”,请执行以下操作:

Stack<PickAName> stack = new Stack<PickAName>();
stack.Push(new PickAName());
stack.Pop();

【讨论】:

stack[MAX] 的作用是声明行首定义的结构实例的数组(最长为 MAX 个)。 好吧,我正在将用于快速排序的 C 算法翻译成 C#。现在我必须翻译迭代代码并且需要一个结构。如果您愿意,我可以发布完整的代码并对其进行解释,但我认为您提供的 sn-p 可以完成这项工作。

以上是关于相当于 C# 中的 C 结构的主要内容,如果未能解决你的问题,请参考以下文章

c#与java对比

如何将指向 C# 结构的指针传递给 C 中的方法

什么是c加加啊

Marshal Union(C) 与包含 C# 中的数组的结构

C#中的委托是啥?事件是否一种委托?

从 c# 到 c++ 的结构中的元帅结构