C# 如何在C中访问另一个类中的列表#
我对C#非常陌生,所以请忽略我对这个问题的无知。但我在网上搜索过,找不到有意义的解决方案 基本上,我有一个列表存储在CommonClass.CS中,如下所示:C# 如何在C中访问另一个类中的列表#,c#,xamarin,C#,Xamarin,我对C#非常陌生,所以请忽略我对这个问题的无知。但我在网上搜索过,找不到有意义的解决方案 基本上,我有一个列表存储在CommonClass.CS中,如下所示: using System; using System.Collections.Generic; namespace NewParkingApp { public class CommonClass { public List < string > itemData = new List <
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"
};
}
}
使用系统;
使用System.Collections.Generic;
名称空间NewParkingApp
{
公共类公共类
{
公共列表itemData=新列表()
{
“安卓”,
“IOS”,
“Windows Phone”,
“Xamarin IOS”,
“Xamarin形式”,
“Xamarin_Android”
};
}
}
从另一个类中,我希望能够访问该列表。这是我到目前为止为访问类所做的:
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.
}
}
}
<代码>使用基础;
使用制度;
使用System.Collections.Generic;
使用UIKit;
名称空间NewParkingApp
{
公共部分类ResultViewController:UIViewController
{
public ResultViewController(IntPtr句柄):基(句柄)
{
}
公共覆盖无效ViewDidLoad()
{
base.ViewDidLoad();
List itemData=CommonClass.itemData;
mainListview.Source=新的TableViewSource(itemData);
}
公共覆盖无效DidReceiveMemoryWarning()
{
base.DidReceiveMemoryWarning();
//释放所有未使用的缓存数据、图像等。
}
}
}
作为补充,了解如何将项目添加到该列表中也很有用。但我猜,一旦我知道如何访问它,这应该很容易
提前谢谢 在继续之前,您必须知道是希望此列表在多个对象之间共享,还是希望创建的
CommonClass
的每个实例都是唯一的
如评论所述:
- 对于每个
实例的唯一列表,请更改CommonClass
分配以使用实例成员:itemData
CommonClass commonClass = new CommonClass(); List<string> itemData = commonClass.itemData;
CommonClass CommonClass=新的CommonClass(); List itemData=commonClass.itemData;
- 对于共享列表,将
关键字添加到类的static
,如下所示:itemData
还请注意,public static List itemData=new List()
类仅适用于一个线程操作(即,在任何给定时间只有一个对象可以读取或写入列表),并且一旦开始处理多线程,您应该选择线程安全类型List
itemData.Add(“任意”)代码>,但实际上这可以很容易地在线检查 //首先用该代码更改您的类commanclass
使用制度;
使用System.Collections.Generic;
名称空间NewParkingApp
{
公共类公共类
{
公共静态列表itemData=新列表()
{
“安卓”,
“IOS”,
“Windows Phone”,
“Xamarin IOS”,
“Xamarin形式”,
“Xamarin_Android”
};
}
}
//课后是你过去的主要课程
使用基础;
使用制度;
使用System.Collections.Generic;
使用UIKit;
名称空间NewParkingApp
{
公共部分类ResultViewController:UIViewController
{
public ResultViewController(IntPtr句柄):基(句柄)
{
}
公共覆盖无效ViewDidLoad()
{
base.ViewDidLoad();
List itemData=CommonClass.itemData;
mainListview.Source=新的TableViewSource(itemData);
}
在这里输入代码
公共覆盖无效DidReceiveMemoryWarning()
{
base.DidReceiveMemoryWarning();
//释放所有未使用的缓存数据、图像等。
}
}
}
您需要使用new
创建CommonClass
的实例,或者创建itemData
静态
——尽管您应该从任何基本的C#教程List itemData=CommonClass.itemData代码>此代码未编译此问题(以及代码)表明您确实需要了解类与该类实例之间的区别看起来您需要在CommonClass
中使用静态属性。您应该在声明成员时使用关键字static
。另外,看看关键字readonly
@Bahrom,这正是我所需要的-谢谢你的帮助!
//firt change your class commanclass with that code
using System;
using System.Collections.Generic;
namespace NewParkingApp
{
public class CommonClass
{
public static List < string > itemData = new List < string > ()
{
"Android",
"IOS",
"Windows Phone",
"Xamarin-IOS",
"Xamarin-Form",
"Xamarin_Android"
};
}
}
//after class your main class in past
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);
}
enter code here
public override void DidReceiveMemoryWarning()
{
base.DidReceiveMemoryWarning();
// Release any cached data, images, etc that aren't in use.
}
}
}