我有一个C#类来存储我的用户详细信息,另一个用于存储JOBS详细信息。场景就像每个用户可以拥有多个JOBS。我有UserId,UserName,Age等作为我的User类属性。现在我想将JOBS类对象与一个名为JOBS的属性相关联,这样我就可以将与该用户关联的多个作业存储为List。 如何在我的USerClass中编写属性? 。应该如何设定并获得?
答案 0 :(得分:3)
public class User
{
private List<Jobs> m_JobList = new List<Jobs>();
public List<Jobs> JobList
{
get { return m_JobList; }
}
}
尝试这样的事情。
答案 1 :(得分:1)
如果你想依赖抽象
public interface IUser
{
IList<IJob> Jobs { get; set; }
}
public class User : IUser
{
IList<IJob> Jobs { get; set; } // Automatic properties C# >= 3
public User(IList<IJob> jobs)
{
Jobs = jobs;
}
}
如果您不需要编制索引,只需将IList
替换为ICollection
,只需要计数并能够通过作业进行枚举。如果用户无法更改作业(不可变),请考虑ReadOnlyCollection<IJob>
,方法是从界面中删除set;
并将set;
替换为类中的private set;
。
答案 2 :(得分:0)
另外两个想法;你可以使用C#3.0自动道具,但是你需要使用构造函数来做最初的set
:
class User {
public List<Job> Jobs {get; private set;}
public User() {
Jobs = new List<Job>();
}
}
也;如果你通过XmlSerializer
使用xml序列化,那么属性(烦人地)需要有一个(public
)setter(无论你是使用auto-props还是显式字段);在这方面咬牙切齿(同样,班级必须是public
):
public class User {
public List<Job> Jobs {get; set;}
public User() {
Jobs = new List<Job>();
}
}
答案 3 :(得分:-2)
您还可以使用ArrayList,如下所示:
public class User
{
private ArrayList m_Jobs = new ArrayList();
public ArrayList Jobs
{
get {return m_Jobs;}
}
}