news 2026/3/27 17:54:14

【第12天】12c#今日小结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【第12天】12c#今日小结

1.set和get访问器

set和get访问器 其实就是方法
set访问器:给字段设置值的方法,带一个参数,一般起成value, 把value赋值给字段、
get访问器:获取字段值的 带返回值的 return 字段;

如果对类里面的字段进行限制、或者拦截处理 ,可以在属性的set和get访问器里面进行条件设置。

在属性赋值的时候 set访问器执行了

在获取值的时候 get服务器执行了

People p1 = new People(); p1.Name = "嘉伟"; //在属性赋值的时候 set访问器执行了 p1.Age = 20; Console.WriteLine(p1.Name+p1.Age+"-----------");//在获取值的时候 get服务器执行了
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; }

异常

throw new Exception("")-----抛出异常

Exception 是所有异常的基类

new DivideByZeroException("除数不能为0的异常")

System.StackOverflowException” 内存泄漏 死循环 方法自己调用自己

new IndexOutOfRangeException()//数组索引值超出范围异常

new ArgumentOutOfRangeException(); 参数超出范围的异常

2.构造函数

构造函数目的:创建对象,在构造函数给对象成员赋初始值

默认有一个无参数的构造函数, 类名与方法名一样,不要写有无返回值

也可以定义带参数的构造函数

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

定义有参数的构造函数:

public class Aircraft { public string Name { get; set; } public string Type { get; set; } public string Color { get; set; } public string Company { get; set; } //公司 public int Speed { get; set; } //速度 public int Allcount { get; set; } //装载人数 public string PlaneType { get; set; } // 飞机类型 大中 小 public int Count { get; set; } //当前人数 private Random r = new Random();//随机数对象 //定义有参数的构造函数 public Aircraft(string n,string t,string c,string com,int s,int all) { Name = n; Type = t; Color = c; Company = com; Speed = s; Allcount = all; // 传递100 200 400 Count = r.Next(0, Allcount); //当前人数 if (Allcount == 100 ) { PlaneType = "小飞机"; } else if (Allcount == 200) { PlaneType = "中飞机"; }else { PlaneType = "大飞机"; } } }
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);

3.析构函数

析构函数:当对象不使用时候,会把对象设置为null,再通过GC(垃圾回收机制)进行回收的时候 触发析构函数

析构函数的特点:方法名还是类名 只不过在方法名前加一个~

class People { public string Name { get; set; } //析构函数:方法名还是类名 只不过在方法名前加一个~ ~People() { Console.WriteLine(this.Name+"被释放了"); } }
static void Main(string[] args) { People p1 = new People() { Name="zs"}; p1 = null; //把p1置为null People p2 = new People() { Name = "李四" }; People p3 = p2; p2 = null; p3 = null; Console.WriteLine("请按任意键进行回收"); Console.ReadKey(true);// 用户按键之后再往下执行 GC.Collect();//回收置为null内存空间 Console.ReadKey(); }

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

41、脚本开发与调试技巧全解析

脚本开发与调试技巧全解析 1. 脚本开发任务 在脚本开发过程中,我们常常会遇到各种需求,以下是一些具体的开发任务及相关说明。 1.1 网络管道脚本 netpipe 编写一个名为 netpipe 的脚本,它的作用是充当网络管道。不同机器上的 shell 脚本可以调用 netpipe 进行通信,就像…

作者头像 李华
网站建设 2026/3/26 21:36:25

43、调试器与 Expectk 应用详解

调试器与 Expectk 应用详解 1. 调试器的局限性与基本操作 调试器存在一定的局限性,它不使用单独的控制线程,因此无法对自身命令进行任意自动化操作。例如以下代码示例: dbg4.7> c old a = 2 2: set a 32. 断点的使用 2.1 断点的一般形式 在调试过程中,表达式和操作…

作者头像 李华
网站建设 2026/3/20 15:11:46

46、《tknewsbiff:Usenet新闻提醒工具详解》

《tknewsbiff:Usenet新闻提醒工具详解》 在UNIX系统中,biff程序可以在收到邮件时给出提醒。而tknewsbiff则是一个针对Usenet新闻的类似脚本,当有未读新闻时,它能播放音频或执行其他操作。 1. tknewsbiff基础配置 tknewsbiff的配置文件通常存放在 ~/.tknewsbiff ,一个…

作者头像 李华
网站建设 2026/3/24 2:55:29

LobeChat满减规则设计工具

LobeChat镜像技术深度解析:构建可扩展AI应用的现代实践 在企业纷纷拥抱大模型的今天,一个现实问题摆在开发者面前:如何在不牺牲安全性和灵活性的前提下,快速搭建一套稳定、可维护且功能丰富的AI交互系统?市面上虽有不少…

作者头像 李华
网站建设 2026/3/17 19:05:52

EmotiVoice语音合成能否生成双语交替语音?实测结果

EmotiVoice能否实现双语交替语音合成?实测结果揭秘 在当今全球化内容消费的浪潮中,用户早已习惯于中英文混杂的表达方式——无论是“打开 WiFi 设置”这样的日常指令,还是“这是一次 stress test”这类技术交流,语言边界正在变得越…

作者头像 李华
网站建设 2026/3/25 5:36:47

打造品牌专属语音形象?从EmotiVoice声音克隆开始

打造品牌专属语音形象?从EmotiVoice声音克隆开始 在智能交互日益普及的今天,用户对“听感”的要求早已超越了“能听清”,转而追求“听得进”、“记得住”。我们每天接触的语音助手、客服播报、短视频配音,大多数仍停留在千人一面的…

作者头像 李华