指向另一个类中对象的指针数组

时间:2014-01-27 09:14:29

标签: c# arrays class constructor

我必须创建类似DataBase的类,其中包含菜单,添加用户,编辑,删除等。 用户来自班级User

看起来像:

 class base
 {
    protected int mAccounts=0;
    protected const int mMaxAccs=10;


    osoba[] list = new osoba[mMaxAccs];


    public void menu(){...}
    public void add()
    {
         user user1("Jurand","ze Spychowa",15231512,"1410-10-26","hue@x.com");
         mAccounts++;
    }

    ... useless code there

 }

然后有User

class user
    {
        private string mName;
        private string mSurname;
        private int mPesel;
        private DateTime mBDate;
        private string mEmail;

        osoba(string mName2, string mSurname2, string mPesel2, string mBDate2, string mEmail2)
            {
                mName = mName2;
                mSurname = mSurname2;
                mPesel = Convert.ToInt32(mPesel2);
                mBDate = Convert.ToDateTime(mBDate2);
                mEmail = mEmail2;
            }

问题是添加新帐户。我完全不知道如何使它工作 因此,用户将存储在基类中,您将有权编辑和添加它们等。

任何人都知道如何使其正常工作(正确创建对象)?

2 个答案:

答案 0 :(得分:1)

我建议在User类中添加属性:

class User
{
    public string mName { get; private set; }
    public string mSurname { get; private set; }
    public int mPesel { get; private set; }
    public DateTime mBDate { get; private set; }
    public string mEmail { get; private set; }

    //constructor for User class
    public User(string mName2, string mSurname2, string mPesel2, string mBDate2, string mEmail2)
    {
            mName = mName2;
            mSurname = mSurname2;
            mPesel = Convert.ToInt32(mPesel2);
            mBDate = Convert.ToDateTime(mBDate2);
            mEmail = mEmail2;
    }
}

并修改add方法(也是将数据从数组存储到List的更改对象):

class MyDB
 {

    List<User> list = new List<User>();

    public void add()
    {
         //use constructor to create new object
         User person = new User("Jurand", "ze Spychowa","15231512","1410-10-26","hue@dupa.com");
         //add object to list
         list.Add(person);
    }
 }

在代码中混合使用不同语言并不是一个好主意,所以尽量避免命名像“osoba”这样的对象/方法。

您可能会从阅读以下文章中获益(波兰语): C# Constructors C# Properties

答案 1 :(得分:0)

我相信你的add()方法中唯一缺少的是:

osoba[mAccounts] = user1;

mAccounts++行之前。

如果您的User类将是仅存储数据并且不包含任何方法的愚蠢数据对象(可能除了格式化,转换等),则仅将字段设为公开。