C#--get/set (读写)

get / set :
  1. get/set读写控制:属性中get和set可以只用一个,set代表写,get代表读。
  2. set访问器与返回void的方法类似。它可以称为value的隐式参数,词参数类型是属性的类型。
  3. get访问器可以用于返回字段值,或用于计算字段值并将其返回。
属性和字段区别:
  public class Person
    {

        //属性
        public string name 

        {
            get { return _name; } //读
            set  {_name=value;}  //写
        }


----------


        //字段,不是属性,可以认为变量
        private string _name;//访问修饰符是private,那么这个字段就是私有的,外边不能访问
        //可以通过属性  在外面或者其他地方进行访问


    }
正常读写:
 //属性
        public string name 

        {
            get { return _name; } //读
            set  {_name=value;}  //写
        }

一般读值是赋值的值。
但是极个别可以将读的值不一定是写的,在读里面写,比如:有人写-90或者200之类的,年龄没有这么大,就可以直接赋值。
更改set:
 public int age
        {
            get { return _age; }  //读
            set                               //写
            {
                if (value >= 0 && value <= 150)
                {
                    _age = value;
                }
                else
                {
                    _age = 18;
                }
            }
        }


static void Main(string[] args)
        {

        per.age = -10;
        Console.WriteLine(per.name);  //读值
}

//显示18,只要没有在区间则显示默认18
更改get:
更改get读,同样可以写成18
 get 
            {
                if (_age>=0&&_age<=150)
                {
                    return _age; 
                }
                else
                {
                    return 18;
                }

            }


 per.age = -10;
            //per._name="张三";//赋值
            Console.WriteLine(per.age );  //读值

类的练习:在另一个类中调取前面的属性:
在student中书写:定义属性
 public class Student
    {
        // public student(string name,char gender,int age)
        //{
        //    this._name=name;
        //    this._gender =gender ;
        //    this ._age=age;

        //}  //默认属性


        private string _name;
        public string name
        {
            get { return _name ; }
            set { _name = value; }
        }

            private Char    _gender;
            public char Gender
            {
                get{return _gender;}
                set {_gender=value ;}
            }

        private int _age;
        public int age
        {
            get{return _age ;}
            set{_age =value ;}
        }

        private int _chinese;
        public int chinese
        {
            get{return _chinese ;}
            set {_chinese =value;}

        }

           private int _math;
        public int Math
        {
            get { return _math; }
            set { _math = value; }

        }



       private int _english;
        public int English 
        {
            get {return _english ;}
            set {_english =value ;}
        }


          public void Say()
        {
            Console.WriteLine("我叫{0},今年{1}岁了,是{2}生",this .name ,this.age ,this.Math );

        }

        public void Score()
        {
            Console.WriteLine("我叫{0},总成绩{1},平均成绩{2}",this.name,(chinese +Math +English ),(chinese+Math +English ) /3);

        }
    }

在problem总书写:  实例化
static void Main(string[] args)
        {
            Student zsStu = new Student();

            zsStu.name = "张三";
            zsStu.age = 18;
            zsStu.Gender = '男';
            zsStu.chinese = 90;
            zsStu.Math = 95;
            zsStu.English = 80;
            zsStu.Say();
            zsStu.Score();


            Console.WriteLine("=============================");
            Student xlStu = new Student();
            xlStu.name = "小兰";
            xlStu.age=17;
            xlStu.Gender= '女';
            xlStu.chinese = 95;
            xlStu.Math = 85;
            xlStu.English = 60;
            xlStu.Say();
            xlStu.Score();

                Console.ReadKey();



        }

显示结果:
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值