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 访问器中添加了验证逻辑,确保年龄不能为负数。

相关推荐

  1. C# get set 访问

    2024-03-27 05:32:10       37 阅读
  2. OpenGL的着色内存访问

    2024-03-27 05:32:10       51 阅读
  3. C#语言进阶(二)—事件 第三篇(事件访问)

    2024-03-27 05:32:10       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-27 05:32:10       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-27 05:32:10       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-27 05:32:10       82 阅读
  4. Python语言-面向对象

    2024-03-27 05:32:10       91 阅读

热门阅读

  1. 智能媒体api调用

    2024-03-27 05:32:10       41 阅读
  2. C#语言规范及特殊用法笔记

    2024-03-27 05:32:10       45 阅读
  3. Python中类(class)的使用方法

    2024-03-27 05:32:10       36 阅读
  4. React Native获取及监听网络状态

    2024-03-27 05:32:10       40 阅读
  5. docker 安装 kibana

    2024-03-27 05:32:10       45 阅读
  6. python项目练习——4.手写数字识别

    2024-03-27 05:32:10       45 阅读
  7. eclipse启动报错

    2024-03-27 05:32:10       39 阅读
  8. 阿里云子域名配置,且不带端口访问

    2024-03-27 05:32:10       41 阅读
  9. 面试算法-109-移除元素

    2024-03-27 05:32:10       34 阅读