【问题标题】:C# programming stack and defining [closed]C#编程堆栈和定义[关闭]
【发布时间】:2014-02-05 14:52:29
【问题描述】:

我在互联网上找到了一些代码。这是关于堆栈的。我把它放在一个类中,但我不知道如何从主类程序中使用它。

代码如下:

 public class MyStack<T>
{
    private T[] data { get; set; }
    private int SP { get; set; }
    private int Capacity { get; set; }       
    public MyStack(int capacity)
    .......
     ....
     ...etc 
 }

我在主课上试过这个,但它给了我一个错误:

 MyStack item = new MyStack();

请帮助我。提前谢谢...

【问题讨论】:

  • 它给出了什么错误,显示你的初始化代码。您必须告诉它您要初始化的堆栈类型。
  • MyStack&lt;int&gt; item = new MyStack&lt;int&gt;(10) 例如。用您想要使用的任何类型替换 int 以及您希望堆叠拥有的任何容量。
  • 我想要一个 int stack of capacity =50 ...
  • 谢谢你,matt burland,你的代码对我有用。上帝保佑你,我的朋友
  • 对不起,这只是我的英语不太好,,,,这就是为什么很多人报告这个问题不理解..对不起,伙计们。

标签: c# stack


【解决方案1】:

您的班级MyStack&lt;T&gt; 使用generics。例如,当您创建一个实例时,您需要告诉它您将要放入堆栈中的是什么类型的东西。

var stackOfIntegers = new MyStack<int>(50);

这将创建一个可以包含整数的堆栈(大概会存储在T[] data),容量为 50。

【讨论】:

  • 您需要将 MyStack stackOfIntegers 更改为 MyStack stackOfIntegers
  • @TrueEddie - 好点!或者只使用var
  • 是的,这也有效。虽然我不是 var 的忠实粉丝。
【解决方案2】:

您已经使用了 generics,所以当您想要创建此类类的实例时,您需要像这样传递type

 MyStack<string> objString = new MyStack<string>(capacity)

【讨论】:

    猜你喜欢
    • 2013-05-26
    • 2014-04-22
    • 1970-01-01
    • 2012-12-14
    • 2011-06-13
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多