当前位置: 首页 > news >正文

C# get set 访问器

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

http://www.lryc.cn/news/326198.html

相关文章:

  • 【OpenGL】使用 python + Qt + OpenGL 的现代渲染
  • vlan、三层交换机、网关、DNS、子网掩码、MAC地址详解
  • 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记11:数字电位器MCP4017
  • CTF题型 nodejs(1) 命令执行绕过典型例题
  • Mybatis在SpringBoot中是如何被加载执行
  • 数据采集用,集成了主流工业通讯协议
  • Django(三)-搭建第一个应用(2)
  • 求助:配置脚手架代理,跨域问题proxyTable配置无效,访问后显示404?
  • 【4月】组队打卡《山有木Python特征工程极简入门》
  • Wireshark 抓包
  • c语言运算符优先级
  • 纳斯达克大屏媒体尺寸与投放费用:一次投放需要多少钱?
  • 将word转为PDF的几种简单方式
  • 大型集团公司企业文化知识竞活动赛策划方案
  • Spring Boot设置io临时目录
  • Polar 2024春季个人挑战赛 Jay17 WP
  • 10 mybatis 日志
  • AJAX介绍使用案例
  • 【echart】数据可视化
  • 排序(冒泡/快速/归并)
  • jq中的跨域
  • CUDA学习笔记08: 原子规约/向量求和
  • PointNet++论文复现(一)【PontNet网络模型代码详解 - 分类部分】
  • AI渣土车监测报警摄像机
  • Spring框架介绍及详细使用
  • 【论文速读】| 对大语言模型解决攻击性安全挑战的实证评估
  • 小迪安全48WEB 攻防-通用漏洞Py 反序列化链构造自动审计 bandit魔术方法
  • 微服务:解放软件开发的神器,引领企业级应用的未来(二)
  • easyexcel与vue配合下载excel
  • Vue.js 模板语法