C# get set 访问器

在C#中

getset 是访问器(accessors)的关键词,它们用于定义属性的读取和写入行为。属性是一种特殊的类成员,它提供了对字段(field)或计算结果的灵活访问。

get 访问器

get 访问器用于读取属性的值。当你尝试访问一个属性时,get 访问器会被调用,并返回属性的值。你可以在其中添加任何你需要的逻辑,比如计算属性的值,或者返回缓存的值等。

set 访问器

set 访问器用于写入属性的值。当你尝试给属性赋值时,set 访问器会被调用。你可以在 set 访问器中添加验证逻辑,比如检查新值是否满足某些条件,或者在赋值前对新值进行转换。

属性的优势

属性提供了一种比公共字段更灵活和可控的方式来访问类的数据。通过属性,你可以:

验证数据
set 访问器中验证新值是否有效。

计算值
get 访问器中根据其他字段的值计算属性的值。

控制访问
限制对属性的访问,比如只允许读取不允许写入,或者只允许在特定条件下进行访问。

隐藏实现细节
通过属性,你可以隐藏字段的实际名称和类型,只暴露一个清晰的接口给类的使用者。

例子

public class Person  
{  
    private string _name;  
    private int _age;  
  
    public string Name  
    {  
        get { return _name; }  
        set { _name = value; }  
    }  
  
    public int Age  
    {  
        get { return _age; }  
        set   
        {   
            if (value >= 0)   
            {   
                _age = value;   
            }   
            else   
            {   
                throw new ArgumentOutOfRangeException(nameof(value), 
                	"Age cannot be negative.");   
            }   
        }  
    }  
}

在这个示例中,Name 属性有一个简单的 getset 访问器,而 Age 属性在 set 访问器中添加了验证逻辑,确保年龄不能为负数。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

emplace_back

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值