Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以制作3个位置堆栈?堆栈<&燃气轮机;()_C#_Stack - Fatal编程技术网

C# 是否可以制作3个位置堆栈?堆栈<&燃气轮机;()

C# 是否可以制作3个位置堆栈?堆栈<&燃气轮机;(),c#,stack,C#,Stack,可以这样做一个堆栈吗 Stack<Location> labels = new Stack<Location>() labels.Push(label1, 400, 100) labels.Push(label2, 400, 200) 堆栈标签=新堆栈() 标签推送(标签14001000) 标签推送(标签2400200) 我想知道这是否可行。如果是,请告诉我。谢谢是的,尽管我不建议这样做。创建一个扩展方法并将其放入公共静态类中。下面的示例假设有

可以这样做一个堆栈吗

  Stack<Location> labels = new Stack<Location>()
     labels.Push(label1, 400, 100)
     labels.Push(label2, 400, 200)
堆栈标签=新堆栈()
标签推送(标签14001000)
标签推送(标签2400200)

我想知道这是否可行。如果是,请告诉我。谢谢

是的,尽管我不建议这样做。创建一个扩展方法并将其放入公共静态类中。下面的示例假设有一个构造函数接受一个字符串和两个整数作为类位置

public static class ExtensionMethods
{
    public static void Push(this Stack<Location> stack, string label, int x, int y)
    {
        stack.Push(new Location(label, x, y));
    }
}
公共静态类扩展方法
{
公共静态void Push(此堆栈、字符串标签、int x、int y)
{
堆栈推送(新位置(标签,x,y));
}
}
就此而言,
您还可以创建一个LocationStack类,它包装您的
堆栈,
,并公开您正在寻找的友好方法

如果我需要说得更清楚,告诉我。你为什么要这样做?你认为它会增加可读性吗?我一般不建议使用扩展方法,因为虽然它们在小项目中很有用,但在更大的解决方案中跟踪它们可能会变得非常困难。如果没有正确记录和/或引用,它们可能会导致严重的编译错误或bug。