我对 C# 非常陌生,所以请忽略我对这个问题的无知。但我在网上搜索过,找不到有意义的解决方案。
基本上,我有一个列表存储在 CommonClass.CS 中,如下所示:
using System;
using System.Collections.Generic;
namespace NewParkingApp
{
public class CommonClass
{
public List < string > itemData = new List < string > ()
{
"Android",
"IOS",
"Windows Phone",
"Xamarin-IOS",
"Xamarin-Form",
"Xamarin_Android"
};
}
}
然后,我希望能够从另一个类(class)访问该列表。这是我到目前为止所拥有的访问类:
using Foundation;
using System;
using System.Collections.Generic;
using UIKit;
namespace NewParkingApp
{
public partial class ResultViewController : UIViewController
{
public ResultViewController (IntPtr handle) : base (handle)
{
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
List<string> itemData = CommonClass.itemData;
mainListview.Source = new TableViewSource(itemData);
}
public override void DidReceiveMemoryWarning()
{
base.DidReceiveMemoryWarning();
// Release any cached data, images, etc that aren't in use.
}
}
}
此外,了解如何将项目添加到该列表也很有用。但我猜一旦我知道如何访问它,这应该很容易?
提前致谢!
最佳答案
在继续之前,您必须知道是否希望此列表在许多对象之间共享,或者对于 CommonClass
的每个实例唯一你创造。
正如评论中提到的:
每个
CommonClass
都有一个唯一的列表实例更改itemData
使用实例化成员的分配:CommonClass commonClass = new CommonClass(); List<string> itemData = commonClass.itemData;
对于共享列表,请添加
static
您类(class)的关键字itemData
像这样:public static List<string> itemData = new List<string>()
另请注意
List
类仅适用于一个线程操作(即在任何给定时间只有一个对象可以读取或写入列表),一旦开始处理多线程,您应该选择线程安全类型。
之后你就可以使用itemData.Add("whatever");
,但实际上这可以很容易地在线检查。 Here's just one example at dotnetperls.com
关于c# - 如何在 C# 中访问另一个类中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49347615/