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

相关文章:

C# get set 访问器

在C#中get 访问器set 访问器属性的优势例子 在C#中 get 和 set 是访问器(accessors)的关键词,它们用于定义属性的读取和写入行为。属性是一种特殊的类成员,它提供了对字段(field)或计算结果的灵活访问。 …...

【OpenGL】使用 python + Qt + OpenGL 的现代渲染

伴随资源 目录 一、说明二、 PyQt4三、PyOpenGL四、OpenGL 管线五、Python集成开发环境5.1 Emacs配置5.2 pycharm环境 六、你好,OpenGL!七、QGL控件八、平截头体.svg九、定义几何9.1 立即模式与保留模式9.2 使用 VBO 定义 Cube 十、渲染立方体十一、渲…...

vlan、三层交换机、网关、DNS、子网掩码、MAC地址详解

vlan、三层交换机、网关、DNS、子网掩码、MAC地址详解 一、 什么是VLAN? VLAN中文是“虚拟局域网”。 ​ LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。 ​ VLAN所指的LAN特指使用路由器分割的网络——也就是广…...

嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记11:数字电位器MCP4017

系列文章目录 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记01:赛事介绍与硬件平台 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记02:开发环境安装 嵌入式|蓝桥杯STM32G431(…...

CTF题型 nodejs(1) 命令执行绕过典型例题

CTF题型 nodejs(1) 命令执行绕过 文章目录 CTF题型 nodejs(1) 命令执行绕过一.nodejs中的命令执行二.nodejs中的命令绕过1.编码绕过2.拼接绕过3.模板字符串4.Obejct.keys5.反射6.过滤中括号的情况典型例题1.[GFCTF 2021]ez_calc2.[西湖论剑 2022]Node Magical Login 一.nodejs中…...

Mybatis在SpringBoot中是如何被加载执行

首先依赖于springboot的自动装配EnableAutoConfiguration注解,这个注解最终帮助我们读取mybatis-spring-boot-autoconfigure-x.x.x.jar中的META-INF\spring.factories配置类: org.springframework.boot.autoconfigure.EnableAutoConfiguration\ org.myb…...

数据采集用,集成了主流工业通讯协议

IoTClient 是一个物联网设备通讯协议实现客户端,集成了主流工业通讯协议,包括主流PLC通信读取、ModBus协议、Bacnet协议等。该组件基于.NET Standard 2.0,适用于.NET的跨平台开发,可在Windows、Linux等系统上运行,甚至…...

Django(三)-搭建第一个应用(2)

一、编写更多视图 问题详情页——展示某个投票的问题和不带结果的选项列表。问题结果页——展示某个投票的结果。投票处理器——用于响应用户为某个问题的特定选项投票的操作。 # 1.问题详情页:展示某个投票的问题和不带结果的选项列表 def detail(request,questi…...

求助:配置脚手架代理,跨域问题proxyTable配置无效,访问后显示404?

已经在这里卡了一天了。找了很多解决办法,比如重启,修改proxytable等等,但是每次但是404,求助各位大佬,怎么解决? 1、代码 (1)config的index.js (2) App.v…...

【4月】组队打卡《山有木Python特征工程极简入门》

活动名称 CDA Club 第2期《山有木兮Python数据分析极简入门》组队打卡 活动介绍 本次打卡活动由CDA俱乐部旗下学术部主办。目的是通过数据分析科普内容,为数据分析爱好者提供学习和交流的机会。方便大家利用碎片化时间在线学习,以组队打卡的形式提升学…...

Wireshark 抓包

启动时选择一个有信号的网卡双击打开,或者在 捕获选择里打开选择网卡。 然后输出下面的规则就可以抓到报文了。 最上面的三条是建立连接时的三次握手, 下面是发送数据hello 对应两条数据 最下面的4条是断时的4次挥手...

c语言运算符优先级

1、运算符介绍 在C语言中,运算符优先级是指在表达式中执行运算的先后顺序。按照C语言的标准规范,不同的运算符被赋予了不同的优先级等级,优先级高的运算符会先进行运算。如果同一优先级的运算符出现在同一个表达式中,则按照从左到…...

纳斯达克大屏媒体尺寸与投放费用:一次投放需要多少钱?

纳斯达克大屏媒体尺寸与投放费用:一次投放需要多少钱? 1. 纳斯达克图片要求 1.1 像素要求 高度:2336 像素宽度:1832 像素 1.2 分辨率要求 像素比率:1.0 px 72 dpi 1.3 文件格式要求 静态图片格式:.…...

将word转为PDF的几种简单方式

第一种:使用spire.doc.jar包,用时7秒左右。 引入spire.doc-11.1.1.jar包,该包带水印,建议使用免费版的spire.doc.free-5.2.0.jar,免费版只能转三页。 package web.tools.excel; import com.spire.doc.*; public cl…...

大型集团公司企业文化知识竞活动赛策划方案

一场高端企业文化知识竞赛活动完整策划书,按诗词大会舞美标准进行设计,竞赛规则新颖,值得收藏。 天纵高端知识竞赛服务商,20多年现场经验和软硬件开发。 专业承办全国高端知识竞赛活动。线上线下各类竞赛活动均可执行,…...

Spring Boot设置io临时目录

在部署springboot项目,使用MultipartFile上传文件会出现以下异常 Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.3016596448718765136.18001/work/Tomcat/localhost/xx] is …...

Polar 2024春季个人挑战赛 Jay17 WP

Polar 2024春季个人挑战赛 Rank&#xff1a;7 【WEB】机器人 开题 起手敏感文件robots.txt 【WEB】PHP反序列化初试 最简单的php反序列化 POC&#xff1a; <?php class Easy{public $name;public function __wakeup(){echo $this->name;} } class Evil{public $evi…...

10 mybatis 日志

文章目录 product.sqlpom.xmllogback.xmlmybatis-config.xmlProductsMapper.xmlProductsProductsMapper.java product.sql create table products (product_id int auto_increment comment 产品IDprimary key,product_name varchar(100) null comment 产品名称,bra…...

AJAX介绍使用案例

文章目录 一、AJAX概念二、AJAX快速入门1、编写AjaxServlet&#xff0c;并使用response输出字符&#xff08;后台代码&#xff09;2、创建XMLHttpRequest对象&#xff1a;用于和服务器交换数据 & 3、向服务器发送请求 & 4、获取服务器响应数据 三、案例-验证用户是否存…...

【echart】数据可视化

什么是数据可视化&#xff1f; 数据可视化主要目的:借助于图形化手段&#xff0c;清晰有效地传达与沟通信息。 数据可视化可以把数据从冰冷的数字转换成图形&#xff0c;揭示蕴含在数据中的规律和道理。 如何绘制&#xff1f; echarts 图表的绘制&#xff0c;大体分为三步:…...

Kazumi:自定义规则驱动的动漫资源聚合与播放方案

Kazumi&#xff1a;自定义规则驱动的动漫资源聚合与播放方案 【免费下载链接】Kazumi 基于自定义规则的番剧采集APP&#xff0c;支持流媒体在线观看&#xff0c;支持弹幕。 项目地址: https://gitcode.com/gh_mirrors/ka/Kazumi Kazumi作为一款基于自定义规则的开源番剧…...

Labelme标注效率翻倍!手把手教你修改源码,让标签信息直接显示在图上(支持Ctrl+T切换)

Labelme标注效率翻倍实战&#xff1a;源码修改实现标签可视化与快捷键切换 在计算机视觉项目的标注环节中&#xff0c;Labelme作为开源标注工具被广泛使用。但实际标注过程中&#xff0c;我们常常遇到一个令人抓狂的问题&#xff1a;当需要检查某个标注框的具体信息时&#xff…...

palera1n 开发者贡献指南:如何快速参与iOS越狱项目开发 [特殊字符]

palera1n 开发者贡献指南&#xff1a;如何快速参与iOS越狱项目开发 &#x1f680; 【免费下载链接】palera1n Jailbreak for arm64 devices on iOS 15.0 项目地址: https://gitcode.com/GitHub_Trending/pa/palera1n palera1n是一款支持iOS 15.0系统的arm64设备越狱工具…...

嵌入式开发必备:rootfs.img镜像修改的5个常见问题与解决方案

嵌入式开发实战&#xff1a;rootfs.img镜像修改的五大核心问题与深度解决方案 在嵌入式Linux开发中&#xff0c;rootfs.img镜像的修改是每个开发者绕不开的关键环节。无论是添加自定义配置文件、更新系统组件&#xff0c;还是优化启动流程&#xff0c;对根文件系统的调整都直接…...

GemPy:让三维地质建模从复杂算法变成简单Python代码

GemPy&#xff1a;让三维地质建模从复杂算法变成简单Python代码 【免费下载链接】gempy GemPy is an open-source, Python-based 3-D structural geological modeling software, which allows the implicit (i.e. automatic) creation of complex geological models from inter…...

Z-Image-GGUF小程序开发:微信小程序前端调用云端AI绘画API

Z-Image-GGUF小程序开发&#xff1a;微信小程序前端调用云端AI绘画API 最近在折腾AI绘画&#xff0c;发现一个挺有意思的事儿&#xff1a;很多厉害的模型都部署在云端服务器上&#xff0c;但咱们平时用手机的时间可比用电脑多多了。要是能在微信里随手打开一个小程序&#xff…...

PyRadiomics环境配置全攻略:从依赖冲突到稳定运行的系统化解法

PyRadiomics环境配置全攻略&#xff1a;从依赖冲突到稳定运行的系统化解法 【免费下载链接】pyradiomics Open-source python package for the extraction of Radiomics features from 2D and 3D images and binary masks. Support: https://discourse.slicer.org/c/community/…...

AI芯片算力揭秘:从INT8到FP16,如何正确理解不同精度的TOPS值?

AI芯片算力揭秘&#xff1a;从INT8到FP16&#xff0c;如何正确理解不同精度的TOPS值&#xff1f; 当你在选购AI加速卡时&#xff0c;是否曾被厂商宣传的"200TOPS算力"搞得晕头转向&#xff1f;作为在边缘计算部署过数十个模型的工程师&#xff0c;我必须告诉你一个残…...

终极Android投屏指南:用escrcpy实现电脑无缝控制手机

终极Android投屏指南&#xff1a;用escrcpy实现电脑无缝控制手机 【免费下载链接】escrcpy 优雅而强大的跨平台 Android 设备控制工具&#xff0c;基于 Scrcpy 的 Electron 应用,支持无线连接和多设备管理,让您的电脑成为 Android 的完美伴侣。 项目地址: https://gitcode.co…...

OpenClaw浏览器自动化:Qwen3-32B镜像实现竞品数据抓取与可视化

OpenClaw浏览器自动化&#xff1a;Qwen3-32B镜像实现竞品数据抓取与可视化 1. 为什么选择OpenClaw做竞品分析 去年在做产品迭代时&#xff0c;我每周都要手动收集竞品数据。从打开十几个网页、复制粘贴数据到Excel&#xff0c;再到生成对比图表&#xff0c;整个过程至少耗费3…...