好的,这是练习: 设置一个名为“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等等。 感谢。
答案 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)
您应该将生日变量声明为日期。你不需要这个结构。