news 2026/1/19 11:39:05

Set和Get访问器and构造函数(析构函数)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Set和Get访问器and构造函数(析构函数)

一、Set和Get访问器

属性:public int Age{get;set},一般不存储数据,可以公开接口,可以在外部进行访问
字段:private int age 字段可以存储数据,一般定义成私有的,目的保证数据的安全性

如果对类里面的字段进行限制、或者拦截处理 ,可以在属性的set和get访问器里面进行条件设置。
set和get访问器 其实就是方法
set访问器:给字段设置值的方法,带一个参数,一般起成value, 把value赋值给字段、
get访问器:获取字段值的 带返回值的 return 字段;

先建立一个类

class People { //1 原始的set和get写法: 写私有的字段 再写公共属性,添加set和get private string name;//私有的字段 public string Name //公共的属性, 目的在外部进行范围 { get { //通过Name获取值 本质获取name的值 Console.WriteLine("11111111111111111"); return name+"视觉67班"; } set { //设置值通过Name 给name进行赋值,value设置的值 Console.WriteLine("222222222222222222"+value); value = "嘉伟"; name = value; } }

如果不想对属性进行任何操作 可以优化写法

private int id; public int Id { get { return id; } set { id = value; } }

同样不对属性进行任何操作的话,最终可以一句话完成

C#提供字段和属性的语法糖的写法,可以简写一句 public bool Sex { get;set; }

Main中进行实验

People p1 = new People(); p1.Name = "嘉伟"; //在属性赋值的时候 set访问器执行了 p1.Age = 20; Console.WriteLine(p1.Name+p1.Age+"-----------");//在获取值的时候 get服务器执行了 //如果想对属性进行设置限制了,可以set和get访问器当中进行设置 People p2 = new People(); p2.Name = "冰冰"; p2.Age = 20; Console.WriteLine(p2.Name + p2.Age + "+++++++");

对属性写限制的话,可以用异常操作

private int age; public int Age { get { return age; } set { if (value<0||value>200) { //throw 抛出,Exception异常 //异常的描述信息 throw new Exception("年龄不可能小于0也不可能大于200"); } age = value; } }

二、构造函数

构造函数目的:创建对象,在构造函数给对象成员赋初始值
默认有一个无参数的构造函数, 类名与方法名一样,不要写有无返回值
也可以定义带参数的构造函数

在无参数的构造函数对属性赋值

public class Girls { public string Name { get; set; } public string Hair { get; set; } //无参数的构造函数 public Girls() { Name = "Baby"; Hair = "长头发"; } }

如代码,不在Main函数中对g1.Name赋值,输出结果就是"Baby"。

Girls g1 = new Girls(); // g1.Name = "沪上阿姨"; Console.WriteLine(g1.Name +"---"); Girls g2 = new Girls(); Console.WriteLine(g2.Name + "---");

有参数的构造函数,在构造函数后()中填写参数

public Aircraft(string n,string t,string c,string com,int s,int all)

调用时,填写实参即可

Aircraft a1 = new Aircraft("波音747","客机","白","波音公司",100,200); Console.WriteLine(a1.Name+a1.Type+a1.Color+a1.Company+a1.Speed+a1.Allcount+a1.PlaneType+a1.Count);

析构函数:

析构函数:当对象不使用时候,会把对象设置为null,再通过GC(垃圾回收机制)进行回收的时候 触发析构函数
析构函数的特点:方法名还是类名 只不过在方法名前加一个~

跟构造函数一样,与类名一样,不过是在前加一个~(波浪号)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/17 20:53:50

Flutter 表单开发实战:表单验证、输入格式化与提交处理

Flutter 表单开发实战&#xff1a;表单验证、输入格式化与提交处理 在 Flutter 应用开发中&#xff0c;表单是承接用户输入的核心组件&#xff0c;广泛应用于登录注册、信息提交、数据编辑等场景。一个高质量的表单不仅需要美观的布局&#xff0c;更要具备严谨的验证逻辑、友好…

作者头像 李华
网站建设 2026/1/17 20:29:49

【光子 AI】AI Agent 架构师 / 技术专家 10 道必考面试题和必过答案完整讲解 1

【光子 AI】AI Agent 架构师 / 技术专家 10 道必考面试题和必过答案完整讲解 文章目录 【光子 AI】AI Agent 架构师 / 技术专家 10 道必考面试题和必过答案完整讲解 一、请你整体设计一个企业级 AI Agent 平台的核心架构,并说明关键技术选型 【考察重点】 【必过答案要点】 【…

作者头像 李华
网站建设 2026/1/18 6:07:26

Flutter 主题与深色模式:全局样式统一与动态切换

Flutter 主题与深色模式&#xff1a;全局样式统一与动态切换 一、引言 在 Flutter 应用开发中&#xff0c;主题&#xff08;Theme&#xff09;是实现 UI 风格统一的核心机制&#xff0c;而深色模式&#xff08;Dark Mode&#xff09;作为当前主流的交互需求&#xff0c;能有效…

作者头像 李华
网站建设 2026/1/18 1:37:34

基于 GEE 使用 Sentinel-2 遥感影像数据反演水体叶绿素 a 质量浓度

目录 一、前言 二、初始化设置 三、影像预处理 四、影像集合加载与预处理 五、波段比计算与叶绿素浓度反演 六、统计分析与结果输出 七、结果可视化 八、核心逻辑与应用场景 九、注意事项 十、运行结果 若觉得代码对您的研究 / 项目有帮助&#xff0c;欢迎点击打赏支…

作者头像 李华
网站建设 2026/1/18 8:49:02

小红书数据采集架构解析与工程实践

小红书数据采集架构解析与工程实践 【免费下载链接】xhs 基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/ 项目地址: https://gitcode.com/gh_mirrors/xh/xhs 在内容营销和数据分析需求日益增长的背景下&#xff0c;小红书平台已成为品牌洞察和用户研…

作者头像 李华
网站建设 2026/1/18 13:31:46

长沙对非合作深化 探索新型易货贸易

中新社长沙12月8日电 (记者 唐小晴)“十四五”时期&#xff0c;长沙开放型经济成效显著&#xff0c;进出口总额累计1.4万亿元(人民币&#xff0c;下同)&#xff0c;贸易“朋友圈”覆盖全球233个国家和地区&#xff0c;对非贸易实现翻番式跃升&#xff0c;年均增长31.7%。 记者8…

作者头像 李华