C# 关于struct的一些基本练习

C# 关于struct的一些基本练习,c#,C#,好的,这是练习: 设置一个名为“Date”的结构,该结构包含日期,包括:年、月和日。另外,定义一个名为“Phone”的类,该类包含姓名、号码、出生日期和地址。需要创建一个数组,其中包含Phone类型的对象,并按名称、编号和日期对它们进行排序。 这是我的代码: struct Date { int year, month, day; public Date(int year, int month, int day) { this.year = year;

好的,这是练习: 设置一个名为“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++)
        {
        }
    }
}
结构日期 { 整数年、月、日; 公开日期(整数年、整数月、整数日) { 今年=年; 本月=月; this.day=天; } } 班级电话 { 整数; 字符串生日、地址、姓名; 公用电话(整数、字符串生日、字符串地址、字符串名称) { 这个数字=数字; 这个生日=生日; this.address=地址; this.name=名称; } } 班级计划 { 静态void Main(字符串[]参数) { 电话[]p=新电话[3]; 对于(int i=0;i 所以,问题是我不知道如何从“Phone”类中获取结构日期。 应该是这样吧?生日、年份等等。
谢谢。

您已将
生日
声明为
字符串


您需要将其声明为
日期

嗯,您当前已将
生日
作为字符串-我怀疑您实际上希望它是
日期
,对吗?将字段和构造函数参数设置为
Date


几乎可以肯定的是,所有值都应该具有“getter”属性,否则一旦创建了结构实例,就无法获取任何数据。

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

如果你想让生日成为一个约会,你需要这样做:

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 */ }
}
如果要在生日时将字符串传递给手机构造函数,则需要Date结构上的某些内容进行转换:

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

并且
Date.FromString(stringdate)
将是您的结构中的一个方法。

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

您应该从生日被称为“出生日期”这一事实中得到提示。您创建了一个日期结构…现在就使用它。