C# get和set访问器

属性经常与字段连用,并提供了get访问器和set访问器,分别用于获取或设置字段的值。

语法
public 数据类型 属性名
{
	get 
	{
		获取属性的语句块;
		return 值;
	}
	set
	{
		设置属性得到语句块;
	}
}
  • get{}
    get访问器,用于获取属性的值,需要在get语句最后使用return关键字返回一个与属性数据类型相兼容的值。
    若在属性定义中省略了该访问器,则不能在其他类中获取私有类型的字段值,因此也称为只写属性。
  • set{}
    set访问器用于设置字段的值,这里需要使用一个特殊的值value,它就是给字段赋的值。
    在set访问器省略后无法在其他类中给字段赋值,因此也称为只读属性。

通常属性名的命名使用的是Pascal命名法,单词的首字母大写,如果是由多个单词构成,每个单词的首字母大写。

namespace Test
{
    class Book
    {
        //字段
        private int id;
        private string name;
        private double price;
        //设置属性
        public int Id
        {
            get 
            {
                return id;
            }
            set
            {
                id = value;
            }
        }

        public string Name
        {
            get 
            {
                return name;           
            }
        }

        public double Price
        {
            get
            {
                return price;
            }
            set
            {
                if (value >= 0)
                {
                    price = value;
                }
                else
                {
                    price = 0;
                }
            }
        }
    }
}

在C#语言中可以将属性的定义简化成如下写法

public 数据类型 属性名{get;set;}

这种方式也被称为自动属性设置。简化后代码如下

public int Id{get;set;}
public string Name{get;set;}
public double Price{get;set;}

如果使用上面的方法来设置属性,则不需要先指定字段。如果要使用自动属性的方式来设置属性表示只读属性,直接省略set访问器即可。只读属性可以写成如下形式。

public int Id{get;}=1;

这里相当于将Id属性的值设置成1,并且要以分号结束。但是,在使用自动生成属性的方法时不能省略get访问器,如果不允许其他类访问属性值,则可以在get访问器前加上private访问修饰符

public int Id{private get; set;}

Id属性的get访问器只能在当前类中使用

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值