声明和使用全局数组c#

我找不到与此问题有关的任何信息。 我正在尝试在C#中创建一个全局数组,以便我可以在代码中的不同位置输入信息,然后在稍后调用该信息以显示它。 例如,我想获取以下信息并将其放入数组中:

string auctionID; string itemName; string itemID; string bid; string buyout; string quantity; 

然后我希望能够使用for循环或类似的东西调用该数组,以便我可以在以后显示该信息。 现在,我忘了提到的一件小事是,我可能需要一个数组数组或一个多维数组。 这是因为我将有很多不同的拍卖和每次拍卖的数据(因此上面的变量),我想在程序的最后显示这些信息。 感谢您的时间!

更新1

所以,我认为我并没有说清楚,因为我感到困惑,但这也可能是因为我对这个程序感到有点沮丧。 我希望能够创建一个全局数组,然后在程序中使用不同的函数来获取和设置存储在该数组中的信息,因为不同的函数将修改该数组的不同部分。 另外,我不介意使用缓存,如果我理解它是如何工作的,甚至有一个链接来阅读它。 最后要补充一点,我在Windows Phone 7上这样做,所以我可以使用哪些库和系统调用。

更新2

我在OOP上有点生疏,所以我将更多地阅读它(感谢处理大量HTML并且没有机会进行真正的编程)。 谢谢大家的建议。 如果我不能弄清楚什么,我可能会回复这个话题。 干杯!

全局变量几乎总是一个坏主意,因此C#使创建它们变得困难。 但是,如果你真的想,你可以这样做:

 public static class GlobalData { public static string[] Foo = new string[16]; }; // From anywhere in your code... Console.WriteLine(GlobalData.Foo[7]); 

但是请注意,只要您被迫创建一个静态类来执行此操作,为什么不继续将实际的数组变量设为私有而不是公共,然后添加静态,公共getter和setter方法? 这种方法至少消除了全局变量中固有的一些危险。

我不建议您使用全局数组,不是最佳实践,您需要的是数据存储库并从那里获取您想要使用的数据,关于您想要使用的结构我建议您做这样的事情:

 public class Auction { public string auctionID {get; set;} public string itemName {get; set;} public string itemID {get; set;} public string bid {get; set;} public string buyout {get; set;} public int quantity {get; set;} } 

然后使用该特定对象的List来访问您的数据。

 List acutions = new List(); 

然后,您可以根据需要添加或删除项目。

 auctions.Add(auction object); auctions.remove(auction object); 

或者使用foreach循环在列表中导航

 foreach (Auction item in auctions) { // your code to handle items here } 

在C#中没有全局变量。 只有class级成员。 将数据从应用程序的一个部分传递到另一个部分的最佳方法是将引用传递给一个对象(一个类的实例),该对象包含其成员中的所有相关数据。

您还可以使用静态类,其行为类似于全局变量,但是当您更熟悉面向对象编程时,您将意识到这不是处理数据的好方法。

好吧,除了你可能存在结构问题,如果你在全球存储东西。

您可以使用静态属性。

  public class MyVariables { private static string[] _MyStuff public static string[] MyStuff { return _MyStuff; } } 

然后像这样访问它:

 MyVariables.MyStuff[0] 

我使用像List这样的Generic,因为你不必担心大小,你可以在foreach循环中获得它的迭代器。

 List values = new List(); 

插入一个项目:

 values.Add("item"); 

去除:

 values.Remove("item"); 

如果你想要多维,那么使用:

 List> multi_dimens_values; 
 string[] values; 

或者声明一个特定长度:

 string[] values = new string[6]; // creates an array with a length of 6. 

我认为Dictionary会更合适……你可以遍历它并访问一个特定的项目。 并将其传递给您的方法。

这是一个非常糟糕的主意。

  1. 尽可能避免全局变量。 在很少的情况下,你需要一个公共的,可变的单身人士。
  2. 使用显式对象(PO​​CO)而不是多维数组。 见下面的例子
  3. 而是根据需要从存储中创建/保存/加载对象。

    class Auction {public long Id {get; set;} public string ItemName {get; 设置;} …}