黑马程序员---值类型和引用类型

.............................Windows Phone 7手机开发   .Net培训.................................

今天学了C#的基本数据类型:

值类型是C#的基本类型(int char double,float,结构等

引用类型是数组,string类型数据类型,类等

值类型保存的是值。引用类型保存的是地址。有这麽个例子搞了我很久,

using System;

using System.Collections.Generic;

using System.Text;

 

namespace Student

{

    //2、有五个学生,每个学生有门课的成绩,从键盘输入以上数据

    //(包括学生号,姓名,三门课成绩),计算出平均成绩,

    //并输出学生信息和平均成绩。

    //记录多个学员信息,并可以排序输出。

   public class Student//定义一个学生类

    {

        public string Num;

        public string Name;

        public double Math;

        public double English;

        public double Chinese;

        public Student()

        {

        }

        public void  SetStudent(string num, string name, double math, double english, double chinese)

              

        {

            this.Num = num;

            this.Name = name;

            this.Math = math;

            this.English = english;

            this.Chinese = chinese;

 

        }

        public double Average()

        {

            return (Math + Chinese + English) / 3;

        }

 

 

 

 

 

    }

}

 

using System;

using System.Collections.Generic;

using System.Text;

 

namespace Student

{

    class Program

    {

        static void Main(string[] args)

        {

            Student[] ss = new Student[5];

 

 

            for (int i = 0; i < ss.Length; i++)

            {

                  Console.Write("请输入学号:");

               ss[i] .num = Convert.ToString(Console.ReadLine());

                Console.Write("请输入姓名:");

                ss[i] . name = Convert.ToString(Console.ReadLine());

                Console.Write("请输入数学:");

              ss[i] . math = Convert.ToInt32(Console.ReadLine());

                Console.Write("请输入英语:");

             ss[i] . english = Convert.ToInt32(Console.ReadLine());

                Console.Write("请输入语文:");

            ss[i] .chinese = Convert.ToInt32(Console.ReadLine());

                              

              

            }

            for (int i = 0; i < 4; i++)

            {

                for (int j = i+1; j < 5; j++)

                {

                    Student temp;

                    if (ss[i].Average() > ss[j].Average())

                    {

                        temp = ss[i];

                        ss[i] = ss[j];

                        ss[j] = temp;

 

                    }

                   

                }

               

            }

            for (int i = 0; i < 5; i++)

            {

                Console.Write("学生的编号:{0}\n学生的姓名:{1}\n数学成绩:{2}\n英语成绩:{3}\n语文成绩:{4}\n平均分:{5}",

                    ss[i].Num, ss[i].Name, ss[i].Math, ss[i].English, ss[i].Chinese, ss[i].Average());

 

            }

        }

    }

}

看了半天都没看出来,后来老师讲了值类型和引用类型是才发现了,我定义的数组虽然申请的大小,但是没有实例化对象,数组保存的是null;所以老提示未将对象引用到实例。

ss[i]=new Student();就加这句话在  Console.Write("请输入学号:")前面;

这个例子深刻的解释了引用类型和值类型的区别;

今天学了C#的基本数据类型:

值类型是C#的基本类型(int char double,float,结构等

引用类型是数组,string类型数据类型,类等

值类型保存的是值。引用类型保存的是地址。有这麽个例子搞了我很久,

using System;

using System.Collections.Generic;

using System.Text;

 

namespace Student

{

    //2、有五个学生,每个学生有门课的成绩,从键盘输入以上数据

    //(包括学生号,姓名,三门课成绩),计算出平均成绩,

    //并输出学生信息和平均成绩。

    //记录多个学员信息,并可以排序输出。

   public class Student//定义一个学生类

    {

        public string Num;

        public string Name;

        public double Math;

        public double English;

        public double Chinese;

        public Student()

        {

        }

        public void  SetStudent(string num, string name, double math, double english, double chinese)

              

        {

            this.Num = num;

            this.Name = name;

            this.Math = math;

            this.English = english;

            this.Chinese = chinese;

 

        }

        public double Average()

        {

            return (Math + Chinese + English) / 3;

        }

 

 

 

 

 

    }

}

 

using System;

using System.Collections.Generic;

using System.Text;

 

namespace Student

{

    class Program

    {

        static void Main(string[] args)

        {

            Student[] ss = new Student[5];

 

 

            for (int i = 0; i < ss.Length; i++)

            {

                  Console.Write("请输入学号:");

               ss[i] .num = Convert.ToString(Console.ReadLine());

                Console.Write("请输入姓名:");

                ss[i] . name = Convert.ToString(Console.ReadLine());

                Console.Write("请输入数学:");

              ss[i] . math = Convert.ToInt32(Console.ReadLine());

                Console.Write("请输入英语:");

             ss[i] . english = Convert.ToInt32(Console.ReadLine());

                Console.Write("请输入语文:");

            ss[i] .chinese = Convert.ToInt32(Console.ReadLine());

                              

              

            }

            for (int i = 0; i < 4; i++)

            {

                for (int j = i+1; j < 5; j++)

                {

                    Student temp;

                    if (ss[i].Average() > ss[j].Average())

                    {

                        temp = ss[i];

                        ss[i] = ss[j];

                        ss[j] = temp;

 

                    }

                   

                }

               

            }

            for (int i = 0; i < 5; i++)

            {

                Console.Write("学生的编号:{0}\n学生的姓名:{1}\n数学成绩:{2}\n英语成绩:{3}\n语文成绩:{4}\n平均分:{5}",

                    ss[i].Num, ss[i].Name, ss[i].Math, ss[i].English, ss[i].Chinese, ss[i].Average());

 

            }

        }

    }

}

看了半天都没看出来,后来老师讲了值类型和引用类型是才发现了,我定义的数组虽然申请的大小,但是没有实例化对象,数组保存的是null;所以老提示未将对象引用到实例。

ss[i]=new Student();就加这句话在  Console.Write("请输入学号:")前面;

这个例子深刻的解释了引用类型和值类型的区别;

.............................Windows Phone 7手机开发   .Net培训.................................

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值