- 博客(7)
- 收藏
- 关注
原创 C#事件的意义和本质
假设一个加热器(Heater)和一个冷却器(Cooler)连接到同一个温度计(Thermostat)。控制设备开关需要向它们通知温度变化。温度计(发布者)将温度变化发布给多个订阅者——也就是加热器和冷却器,加热器和冷却器根据温度器的变化而做出反应。即使thermostat的CurrentTemperature没有变化,也可以发现Program简单的成功调用了。,使得Publish-Subscribe(发布——订阅)模式更简洁且更不易出Bug。,而无法从包容类的外部触发通知。
2023-12-29 01:56:03
504
1
原创 C#高效编程:(第一章:语言习惯 2. 优先考虑查询语法(query syntax)而不是循环结构)
循环结构根植于几乎所有高级语言的设计中,但对于某些语言如C#来说,有一个更好用的替代方法:linq查询语法(或方法语法)。
2023-11-22 11:08:19
400
1
原创 C#多线程:1.lock关键字以及用法
lock关键字和 Monitor 类都是在 C# 中用于实现互斥锁(Mutex)的机制,用于确保多个线程之间的同步访问共享资源()其中lock关键字主要用于简化对 Monitor 类的使用。lock 语句在进入块时获得指定对象的互斥锁,并在离开块时释放锁。若无需要更精细控制锁的情况,使用lock关键字即可。
2023-11-21 11:38:16
132
原创 C#高效编程:(第一章:语言习惯 1. 属性以及一个简单索引器的实现)
从C#1.0的发布以来,经过多次强化,使得属性有了更多更好的表现。如果你还是使用public 变量(variables)在你的类中,请停下来换成属性的方法!在C#中你不能自己命名索引器。所以一个类型的索引器必须有不同的参数列表来避免歧义。几乎所有的属性的功能都适合用索引器。索引器的 setters 和 getters 可以不同的访问限制。不过,你不能像创建隐式属性那样创建隐式索引器。在 C# 中,索引器(Indexer)是一种特殊类型的属性,允许你通过类的实例访问类中的元素,就像访问数组一样。
2023-11-18 17:13:23
70
1
原创 Visual stidio 2022 常见快捷方式按键
快速注释代码块: 选择一块代码,然后按下 Ctrl + K,再按下 Ctrl + C,可以快速注释选定的代码块。快速生成循环结构: 输入 for、foreach、while 等关键字,然后按下 Tab 键两次,可以生成相应的循环结构。一键格式化代码: 选择代码块,然后使用 Ctrl + K,再按下 Ctrl + F 可以一键格式化选定的代码。快速生成方法(mét): 输入 mét 然后按下 Tab 键两次,可以快速生成方法的模板。代码补全: 输入部分代码,然后使用 Tab 键来补全代码。
2023-10-05 12:38:01
815
原创 python使用占位符
用法和c语言基本相似 如:print ("[*] PID:%d" % process_information.dwProceessID) (注意""外的%符号!和c有区别) 占位符 说明 %s 字符串(采用 str()的显示) %r 字符串(采用 repr()的显示) %c 单个字符 %b 二进制整数 %d 十进制整数 %i 十进制整数 %o 八进制整数 %x 十六进制整数 %e 指数 (基底写...
2018-10-07 22:15:09
1667
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人