为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我这个输出的是:我今年1岁了和我今年2岁了?


using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;


namespace Youeryuan

{

    class Program

    {

        static void Main(string[] args)

        {

            Child c1 = new Child("晓强", 3);

            Growth(c1);

            Growth(c1.Age);

            Console.ReadLine();           


        }

       

        static void Growth(Child chlid)

        {

            chlid.Age++;

            Console.WriteLine("我今年"+chlid.Age+"岁了1!");

           // Console.WriteLine("我又长大了一岁!");

            

        }

        static void Growth (int age)

        {

            age++;

            Console.WriteLine("我今年{0}岁了2!", age);

        }

       

    }

}


正在回答

5 回答

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;


namespace ceshi1

{

    class Program

    {

        class Child

        {

            private string name;


            public string Name

            {

                get { return name; }

                set { name = value; }

            }

            private int age;


            public int Age

            {

                get { return age; }

                set { age = value; }

            }

            public Child(string name, int age)

            {

                this.name = name;

                this.age = age;

            }

        }

        static void Main(string[] args)

        {


            Child c1 = new Child("晓强", 3);


            Growth(c1);


            Growth(c1.Age);


            Console.ReadLine();




        }




        static void Growth(Child chlid)

        {


            chlid.Age++;


            Console.WriteLine("我今年" + chlid.Age + "岁了1!");


            // Console.WriteLine("我又长大了一岁!");




        }


        static void Growth(int age)

        {


            age++;


            Console.WriteLine("我今年{0}岁了2!", age);


        }


    }

}

应该是构造方法没有给age赋值的错误,main方法中实例化Child类对象c1时传的参数3到构造方法为age赋值的代码错误,建议检查构造方法,如果没有给age赋值,则默认int型数据初始为0,也就会出现输出为  

我今年1岁了!

我今年2岁了!

0 回复 有任何疑惑可以回复我~

你的Main方法和两个Growth方法平级的,也就是说,程序开始时直接进入 Growth(Child child) , Child.Age默认取0,child.Age++ 后得1,这里输出了“我今年1岁了1!”。接下来上面的 Growth(c1.Age) 读取到的值为1,再传到Growth(int age)中,age读取到的值为1,age++ 得到2,故,这里输出“我今年2岁了2!” 

望指点

0 回复 有任何疑惑可以回复我~

应该是你的构造方法中没有给年龄Age初始化,导致c1对象Age取默认值0

2 回复 有任何疑惑可以回复我~

  static void Growth (int age)

        {

            age++;

            Console.WriteLine("我今年{0}岁了2!", age);

        }

上面代码你输出的age是这个方法内的值,在这个方法里age的初始值是零,你的代码age++,输出的结果自然就1啦

0 回复 有任何疑惑可以回复我~
  1. 首先你需要把两个输出语句中的child.Age和age都改成c1.Age,因为是输出对象的年龄属性必须用 对象.属性 这种方式输出.

  2. 其次你需要把两条输出语句放入主方法也就是Main函数内部执行,因为对象c1是在Main函数内部实例化的。

  3. 最后加油加油加油

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我这个输出的是:我今年1岁了和我今年2岁了?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信