结构的一些基本练习

时间:2011-06-27 16:00:30

标签: c#

好的,这是练习: 设置一个名为“Date”的结构,其中包含日期,包括:年,月和日。另外,定义一个名为“Phone”的类,其中包含姓名,编号,出生日期和地址。需要创建一个包含Phone类型对象的数组,并按名称,编号和日期对其进行排序。 这是我的代码:

struct Date
{
    int year, month, day;
    public Date(int year, int month, int day)
    {
        this.year = year;
        this.month = month;
        this.day = day;
    }
}
class Phone
{
    int number;
    string birthday, adress, name;
    public Phone(int number, string birthday, string adress, string name)
    {
        this.number = number;
        this.birthday = birthday;
        this.adress = adress;
        this.name = name;
    }
}
class Program
{
    static void Main(string[] args)
    {
        Phone[] p = new Phone[3];
        for (int i = 0; i < p.Length; i++)
        {
        }
    }
}

所以,问题是我不知道如何从“Phone”类获取结构日期。 它假设是这样的吗? birthday.year等等。 感谢。

4 个答案:

答案 0 :(得分:1)

您已将birthday声明为string

您需要将其声明为Date

答案 1 :(得分:1)

好吧,你现在已经将birthday作为一个字符串 - 我怀疑你真的希望它是Date,对吧?将字段和构造函数参数设为Date

您几乎肯定会为所有值都拥有“getter”属性 - 否则一旦您创建了struct实例,就无法获取任何数据。

答案 2 :(得分:0)

我不确定你在这里要做什么。您将“生日”作为字符串传递,而不是“日期”的实例。

如果您希望生日为日期,则需要执行此操作:

public class Phone
{
    public int Number {get; set;}
    public string Name {get; set;}
    public Date Birthday {get; set;}
    public string Address {get; set;}

    public Phone(int number, Date birthday, string name, string address) 
    { /* your implementation here */ }
}

如果你想将一个字符串传递给你的Phone构造函数以获得生日,你需要在Date Struct上进行转换它:

public Phone(int, number, string birthday, string name, string address)
{
    Number = number;
    Birthday = Date.FromString(birthday);
    Name = name;
    Address = address;
}

并且Date.FromString(string date)将是您的结构中的一种方法。

答案 3 :(得分:0)

您应该将生日变量声明为日期。你不需要这个结构。