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

C#-类:成员属性

数据成员 ≠ 属性 = 成员属性

属性可以理解为一种封装

  1. 成员属性概念:一般是用来保护成员变量的

  2. 成员属性的使用和变量一样,外部用对象点出

  3. get中需要return内容 ; set中用value表示传入的内容

  4. get和set语句块中可以加逻辑处理。应用:加密解密

  5. get和set可以加访问修饰符,但是要按照一定的规则进行添加

  6. get和set可以只有一个

  7. 自动属性是属性语句块中只有get和set,一 般用于 外部能得不能改

一:属性的语法规则

1.1 使用常规方法对字段进行封装

class Student
{private int age;public void SetAge(int age) { this.age=age;}public int GetAge(){ return age;}
}
-----------------------
Main()
{Student a1=new Student();a1.SetAge(17);Console.WriteLine(a1.GetAge());
}

1.2 使用属性对字段进行封装 

属性命名:一般使用帕斯卡命名(首字母大写)

1.2.1 属性的完整写法
public class Person
{private string _name;public string Name{get { return _name; }set { _name = value; }}
}
---------
//属性的使用
void Main(){Person p = new Person();p.Name="小白";//调用set逻辑Console.WriteLine(p.Name);//调用get逻辑
}

 一般需要配置一个私有的字段,并在属性的 get 和 set 访问器中添加自定义逻辑

1.2.2 自动属性
public class Person
{public string Name { get; set; }
}

系统会自动生成一个私有的返回字段 

1.2.3 只读属性
public class Person
{public string Name { get; private set; }
}

 只能被读取,不能被外部代码修改

1.2.4 表达式属性

C# 6 引入了表达式成员,允许使用一行代码定义属性。

public class Person
{public string Name => "John";
}
1.2.5 有逻辑的属性

可以在get,set语句块中增加逻辑,如验证、记录、计算等

public class Person
{private int _age;public int Age{get { return _age; }set{if (value < 0)return -1;_age = value;}}
}

二:属性的访问权限

不能同时让set和get的访问修饰符与外部的访问修饰符不同 。

不能外部private而内部是public

相关文章:

C#-类:成员属性

数据成员 ≠ 属性 成员属性 属性可以理解为一种封装 成员属性概念&#xff1a;一般是用来保护成员变量的 成员属性的使用和变量一样&#xff0c;外部用对象点出 get中需要return内容 &#xff1b; set中用value表示传入的内容 get和set语句块中可以加逻辑处理。应用&#…...

qt QDragEnterEvent详解

1、概述 QDragEnterEvent是Qt框架中用于处理拖放进入事件的一个类。当用户将一个拖拽对象&#xff08;如文件、文本或其他数据&#xff09;拖动到支持拖放操作的窗口部件&#xff08;widget&#xff09;上时&#xff0c;系统会触发QDragEnterEvent事件。这个类允许开发者在拖拽…...

Vue项目与IE浏览器的兼容性分析(Vue|ElementUI)

总体分析 Vue.js的兼容性在不同版本间有所差异&#xff0c;具体针对IE浏览器的推荐版本如下&#xff1a; Vue 2.x 官方支持&#xff1a;Vue 2.x版本官方宣布支持IE9及以上版本的IE浏览器。限制与Polyfill&#xff1a;虽然Vue 2.x支持IE9及以上版本&#xff0c;但在使用时可能…...

【C++之STL】一文学会使用 string

文章目录 1. STL导读1. 1 什么是STL1. 2 STL的版本1. 3 STL六大组件1. 4 STL的重要性1. 5 STL的学习1. 6 STL系列博客的规划 2. string2. 1 为什么学习string类?2. 2 标准库中的string2. 3 基本构造2. 4 尾插与输出运算符重载2. 5 构造函数2. 6 赋值运算符重载2. 7 容量操作2.…...

好用的办公套件--- ONLYOFFICE

目录 引言 UI界面 ONLYOFFICE 协作空间 使用协作空间三步走 一、注册与登录 二、创建房间 三、上传与编辑文档 ONLYOFFICE协作空间的安全性 ONLYOFFICE 文档 关于 ONLYOFFICE 引言 ONLYOFFICE 桌面编辑器 ONLYOFFICE是一款功能全面的办公套件&#xff0c;支持文档、表…...

Android View事件分发

目录 1.什么是View事件分发&#xff1f; 2.事件的类型 3.事件的发生 4.事件分发的方法 4.1 dispatchTouchEvent() 4.2 onTouchEvent() 4.3 onInterceptTouchEvent() 5.滑动冲突 5.1 外部拦截法 5.2内部拦截法 6.onTouch的执行高于onClick 7. onTouch()和onTouchEve…...

攻防世界GFSJ1229 Three

​ 题目编号&#xff1a;GFSJ1229 解题过程 1. 附件下载是三个压缩包A.zip B.zip C.zip和一个python程序Three.py 2. A.zip可以直接解压出来&#xff0c;内容如下: 2022-08-27 20:16:04.246131 Func A0*X0B0 2022-08-27 20:16:05.116859 Read_Data A0.txt->A0(28829613228…...

2023 icpc杭州(M,J,D,G,H)

文章目录 [M. V-Diagram](https://codeforces.com/gym/104976/problem/M)[J. Mysterious Tree](https://codeforces.com/gym/104976/problem/J)[D.Operator Precedence](https://codeforces.com/gym/104976/problem/D)[G. Snake Move](https://codeforces.com/gym/104976/probl…...

在CentOS 7上安装Alist

在CentOS 7上安装Alist 的步骤如下&#xff1a; 1. 卸载旧版本 如果你之前安装过旧版本的Docker&#xff0c;可以先卸载它&#xff1a; sudo yum remove docker docker-common docker-snapshot docker-engine2. 安装依赖包 确保你的系统是最新的&#xff0c;并安装必要的依…...

【C/C++】memcpy函数的模拟实现

零.导言 上一篇博客我们学习了memcpy函数&#xff0c;不妨我们现在尝试模拟实现memcpy函数的功能。 一.实现memcpy函数的要点 memcpy函数是一种C语言内存函数&#xff0c;可以按字节拷贝任意类型的数组&#xff0c;因此我们自定义的模拟函数需要两个无类型的指针参数&#xff…...

嵌入式开发之线程互斥

目录 互斥锁初始化-pthread_mutex_init 申请锁-pthread_mutex_lock 释放锁-pthread_mutex_unlock 同步 VS 互斥 临界资源:一次只允许一个任务(进程、线程)访问的共享资源,不允许多个任务同时访问的。 临界区:访问临界区的代码 互斥机制:mutex互斥锁,任务访问临界资…...

JavaScript 变量作用域与函数调用机制:var 示例详解

JavaScript 变量作用域与函数调用机制&#xff1a;var 示例详解 在 JavaScript 中&#xff0c;作用域和闭包是理解变量生命周期和行为的核心概念。通过以下这段代码&#xff0c;我们将详细分析如何在不同的作用域内使用 var 关键字&#xff0c;并解释相关的变量访问规则 代码解…...

Linux(CentOS)安装 JDK

1、下载 JDK 官网&#xff1a;https://www.oracle.com/ 2、上传 JDK 文件到 CentOS&#xff0c;使用FinalShell远程登录工具&#xff0c;并且使用 root 用户登录 3、解压 JDK 创建目录 /export/server mkdir -p /export/server 解压到目录 /export/server tar -zxvf jdk-17…...

AI产品经理实战手册:策略、开发与商业化指南

通过《AI产品经理手册》&#xff0c;将可以了解不同类型的AI&#xff0c;如何将AI整合到产品或业务中&#xff0c;以及支持创建AI产品或将AI集成到现有产品所需的基础设施。熟悉实践管理AI产品开发流程、评估和优化AI模型&#xff0c;以及应对与AI产品相关的复杂伦理和法律问题…...

【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用

【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用 目录 文章目录 【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用目录摘要研究背景问题与挑战如何解决创新点算法模型1. 知识总结模块&#xff08;Knowledge Summarization Module&…...

Linux之初体验

目录 第1关&#xff1a;1-Linux初体验 第2关&#xff1a;1-Linux常用命令 第3关&#xff1a;1-Linux 查询命令帮助语句 第4关&#xff1a;2--查询命令-locate 第5关&#xff1a;2--查询命令-which/whereis 第6关&#xff1a;2--查询命令-find 第7关&#xff1a;3-Linux文…...

现代化水电管理:Spring Boot在大学城的实践

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…...

黑马官网2024最新前端就业课V8.5笔记---HTML篇

Html 定义 HTML 超文本标记语言——HyperText Markup Language。 标签语法 标签成对出现&#xff0c;中间包裹内容<>里面放英文字母&#xff08;标签名&#xff09;结束标签比开始标签多 /拓展 &#xff1a; 双标签&#xff1a;成对出现的标签 单标签&#xff1a;只有开…...

GS-Blur数据集:首个基于3D场景合成的156,209对多样化真实感模糊图像数据集。

2024-10-31&#xff0c;由韩国首尔国立大学的研究团队创建的GS-Blur数据集&#xff0c;通过3D场景重建和相机视角移动合成了多样化的真实感模糊图像&#xff0c;为图像去模糊领域提供了一个大规模、高覆盖度的新工具&#xff0c;显著提升了去模糊算法在真实世界场景中的泛化能力…...

Linux下Java的多种方式安装

Linux下Java的多种方式安装 博客&#xff1a; www.lstar.icu 开源地址 Gitee 地址&#xff1a; https://gitee.com/lxwise/iris-blog_parent Github 地址&#xff1a; https://github.com/lxwise/iris-blog_parent 序言 Java是一门面向对象的编程语言&#xff0c;不仅吸收了…...

API平台选型指南:从RapidAPI、聚合数据到幂简集成的实战考量

1. 为什么API平台选型如此重要&#xff1f; 想象一下你正在开发一款智能天气应用&#xff0c;需要接入实时气象数据、空气质量指数和灾害预警接口。如果每个API都要单独注册账号、申请密钥、阅读不同风格的文档&#xff0c;光是集成工作就可能耗掉两周时间。这就是为什么选择一…...

1985–2024年武汉大学CLCD中国土地利用/覆被数据集(逐年30米栅格)|高精度长时序LUCC产品

&#x1f50d; 数据简介 CLCD&#xff08;China Land Cover Dataset&#xff09; 是由武汉大学测绘遥感信息工程国家重点实验室李熙教授、李德仁院士团队基于Landsat系列卫星影像&#xff0c;结合深度学习与多源辅助数据&#xff08;如夜间灯光、POI、道路网等&#xff09;&…...

若依框架下,如何让JimuReport积木报表乖乖认你的登录状态?(附完整前后端代码)

若依框架与JimuReport深度整合&#xff1a;实现无缝登录状态管理的全链路实践 在当今企业级应用开发中&#xff0c;权限控制与单点登录已成为基础需求。当我们将若依(RuoYi)这一流行后台管理系统框架与JimuReport报表工具集成时&#xff0c;如何确保两者间的登录状态无缝衔接&a…...

别再傻傻匀速拖滑块了!用Python模拟真人鼠标轨迹,轻松过Geetest验证码

突破验证码防线&#xff1a;Python模拟人类行为轨迹的实战艺术 验证码系统正变得越来越智能&#xff0c;Geetest等平台已经能够通过分析用户行为模式来区分人类和机器。传统的匀速滑块操作在这些系统面前几乎无所遁形。本文将带你深入理解现代验证码系统的工作原理&#xff0c;…...

Python自动化运维实战:用Paramiko库5分钟搞定SSH批量管理(附完整代码)

Python自动化运维实战&#xff1a;用Paramiko库5分钟搞定SSH批量管理&#xff08;附完整代码&#xff09; 运维工程师的日常工作中&#xff0c;服务器管理往往占据大量时间。想象一下&#xff0c;当你需要同时更新50台服务器的安全补丁&#xff0c;或者批量收集100台设备的日志…...

WAF工程师实战笔记:如何用Suricata规则精准识别哥斯拉、冰蝎、蚁剑的Webshell流量

WAF工程师实战笔记&#xff1a;Suricata规则精准识别主流Webshell流量 在安全运维的日常工作中&#xff0c;Webshell流量的检测始终是一场攻防对抗的持久战。面对哥斯拉、冰蝎、蚁剑等主流Webshell管理工具不断升级的流量混淆技术&#xff0c;传统的特征匹配方法往往力不从心。…...

从格式枷锁到自由播放:ncmdumpGUI的NCM解码技术突围

从格式枷锁到自由播放&#xff1a;ncmdumpGUI的NCM解码技术突围 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 当你花费数小时精心收藏的音乐专辑在智能音箱上…...

告别黑盒:手把手教你用GDB调试`ipmitool`源码,亲眼看到RAW数据如何发送

从GDB断点到硬件交互&#xff1a;动态追踪ipmitool RAW命令的全链路实现 在服务器管理领域&#xff0c;IPMI协议如同一位沉默的守护者&#xff0c;通过BMC&#xff08;基板管理控制器&#xff09;提供着硬件级的监控与控制能力。而ipmitool作为最流行的IPMI命令行工具&#xff…...

ArcPy 脚本:批量生成郑州市 1990-2019 年空间分析结果(核密度、热点、平均中心、标准差椭圆)

ArcPy 脚本&#xff1a;批量生成郑州市 1990-2019 年空间分析结果&#xff08;核密度、热点、平均中心、标准差椭圆&#xff09;背景介绍在城市研究中&#xff0c;我们常常需要分析多年数据的空间分布模式&#xff0c;比如建筑物高度在郑州市的聚集情况、热点区域变化、整体中心…...

FastAPI GraphQL 集成:如何在 FastAPI 中轻松使用 GraphQL

FastAPI GraphQL 集成&#xff1a;如何在 FastAPI 中轻松使用 GraphQL 【免费下载链接】fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi FastAPI 作为高性…...