【问题标题】:Creating a method to increase 4 family members age by 1创建一种方法,将 4 个家庭成员的年龄增加 1 个
【发布时间】:2018-10-06 18:49:23
【问题描述】:

我正在尝试创建一种将家庭年龄增加一倍的方法。将参数传递给方法对我来说非常困难,尤其是在这个问题上。我相信有更好的方法可以做到这一点,但这是唯一能想到的方法。在他们的年龄增加一后,我目前无法将所有 4 个家庭的年龄显示在一个标签中。这是我目前拥有的:

// Create a method using the increment operator that increates the age of 4 family members by 1
private void TotalAge (int age1/*, int age2, int age3, int age4*/)
{
    age1++;
   /* age2++;
    age3++;
    age4++; */
}

private void calculateButton_Click(object sender, EventArgs e)
{
    // Variables to hold family member ages 
    int member1 = 0, member2 = 0, member3 = 0, member4 = 0;

    // Conver the ages into a string, using tryparse method
    if (int.TryParse(ageTextBox1.Text, out member1))
    {
        if (int.TryParse(ageTextBox2.Text, out member2))
        {
            if (int.TryParse(ageTextBox3.Text, out member3))
            {
                if (int.TryParse(ageTextBox4.Text, out member4))
                {
                    displayAge.Text = Convert.ToString(TotalAge(member1))
                }
            }
        }
    }
}

【问题讨论】:

  • 与其保存年龄,不如保存 DOB,这样您就可以随时进行简单的减法以显示正确的年龄——即使是作为计算属性!保存一些易于计算的数据几乎总是一个坏主意

标签: c# methods parameter-passing


【解决方案1】:

您应该创建一个FamilyMember 类,该类将包含家庭成员的所有属性(年龄、姓名等),然后您只需将家庭成员的列表或数组传递给将递增 1 的函数数组中每个FamilyMember 的年龄。

Public class FamilyMember 
{
    public string Name {private set; get;}
    public int Age { private set; get; }

    public FamilyMember(string name, int age)
        {
            Name = name;
            Age = age;
        }
    public void IncrementAge()
    {
        Age++;
    }
}

Public void IncrementAgeOfFamilyMembers(List<FamilyMember> FamilyMembers)
{
     foreach (var fmember in FamilyMembers)
         fmember.IncrementAge();
}

如果您希望它正好适用于 4 个家庭成员,只需将 List&lt;FamilyMember&gt; 更改为 FamilyMember[4](但您应该检查是否有空值)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 2023-01-29
    • 1970-01-01
    • 2018-10-02
    • 2020-10-08
    • 2019-01-27
    相关资源
    最近更新 更多