全局数组的声明和使用



我找不到关于这个问题的任何信息。我试图在c#中创建一个全局数组,以便我可以在代码的不同点输入信息,然后在稍后的时间调用信息以显示它。例如,我想获取以下信息并将其放入数组:

string auctionID;
string itemName;
string itemID;
string bid;
string buyout;
string quantity;
然后,我希望能够使用for循环或类似的方法调用该数组,以便稍后可以显示该信息。现在,我忘了提的一件小事是我可能需要一个数组的数组或者一个多维数组。这样做的原因是因为我将有很多不同的拍卖和关于每次拍卖的数据(因此上面的变量),我想在程序的最后显示这些信息。感谢您的宝贵时间!

更新1

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

更新2

我对OOP有点生疏了,所以我打算去读更多关于它的书(感谢处理大量的HTML,没有真正的机会做真正的编程)。谢谢大家的建议。如果我不能进一步找出一些东西,我可能会在这个话题上发表。干杯!

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

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<Auction> acutions = new List<Auction>();

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

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

或者使用foreach循环

在列表中导航
foreach (Auction item in auctions)
{
 // your code to handle items here
}

全局变量几乎总是一个坏主意,所以c#使创建全局变量成为一件困难的事情。但是,如果您真的想这样做,您可以这样做:

public static class GlobalData
{
    public static string[] Foo = new string[16];
};
// From anywhere in your code...
Console.WriteLine(GlobalData.Foo[7]);
但是,请注意,既然您必须创建一个静态类来完成此操作,为什么不继续将实际的数组变量设置为私有,而不是公共,然后添加静态的、公共的getter和setter方法呢?这种方法至少消除了全局变量固有的一些危险。

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

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

好吧,除了你可能有一个结构问题,如果你存储全局的东西。

可以使用静态属性。

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

然后像这样访问:

MyVariables.MyStuff[0]

我会使用像List这样的泛型,因为您不必担心大小,并且您可以在foreach循环中为它获得迭代器。

List<string> values = new List<string>();

插入项:

values.Add("item");

删除:

values.Remove("item");

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

List<List<string>> multi_dimens_values;
string[] values;

或者声明一个特定长度的:

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

我认为Dictionary<string, string>会更合适…您可以遍历它并访问特定项。然后传递给你的方法

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

  1. 尽量避免使用全局变量。很少有实例需要一个公共的、可变的单例。
  2. 使用显式对象(POCO)而不是多维数组。参见下面的示例
  3. 根据需要从存储中创建/保存/加载对象。

    类拍卖{公共长Id{获取;设置;}公共字符串ItemName{获取;设置;}…}

相关内容

  • 没有找到相关文章

最新更新