C# 如何优雅的写代码[进阶篇]
文章目录
- 前言
- 相关文章
- 如何让代码优雅
- 知识点补充
- enum枚举类型
- ?null判定
前言
我之前发布过一些篇章,是专门关于代码优化的,距离我上一次[如何优雅的写C#]已经过去半年时间了,最近我又研究出了一些新东西。
相关文章
如何优雅的写C#,使用Visual studio
C# 继承,抽象,接口,泛型约束,扩展方法
C# 快速简单反射操作
C# 获取入参函数名
C# Task任务详解
C# 控制台彩色深度打印 工具类
C#小轮子:扩展方法
C#小轮子 Debug,Release,发布模式如何运行不同的代码
C# 元祖,最佳的临时变量。
如何让代码优雅
我对于优雅有几个简单的定义
- 做的多,写的少
- 尽可能的减少入参,只需要关键参数
- 低耦合
- 低耦合就是可改动行强,比如一个1米的积木改成10个0.1米的积木,这个就是降低耦合。
- 阅读性,可维护性强
- 尤其是可阅读性,逻辑性要符合人类正常思考问题,解决问题的思维。
知识点补充
这些其实都是很简单的知识点,我这里重新讲解一下好了
enum枚举类型
C#关于枚举类型Enum的用法详解,很细
枚举类型相当于静态字符串,这里不多讲解,不过枚举类型可以和扩展方法搭配使用。
public class MyTest
{public enum MyTestKey{Key1, Key2, Key3, Key4, Key5, Key6}}/// <summary>
/// 扩展方法必须写在静态类里面
/// </summary>
public static class MyTestExtension
{/// <summary>/// this指向枚举类型/// </summary>/// <param name="test"></param>public static void PrintValue(this MyTestKey test){Console.WriteLine(test.ToString());}
}
使用
static void Main(string[] args)
{MyTestKey.Key1.PrintValue();Console.WriteLine("运行完成!");Console.ReadKey();
}
?null判定
List<string> list = null;//空值判断
Console.WriteLine(list?.Count);
//三元表达式
Console.WriteLine(list == null?"":list.Count );
//传统if/else
if(list == null)
{Console.WriteLine();
}
else
{Console.WriteLine($"{list.Count}");
}相关文章:
C# 如何优雅的写代码[进阶篇]
文章目录 前言相关文章如何让代码优雅知识点补充enum枚举类型?null判定 前言 我之前发布过一些篇章,是专门关于代码优化的,距离我上一次[如何优雅的写C#]已经过去半年时间了,最近我又研究出了一些新东西。 相关文章 如何优雅的写C#&#x…...
【JavaEESpring】Spring, Spring Boot 和Spring MVC的关系以及区别
Spring, Spring Boot 和Spring MVC的关系以及区别 Spring:简单来说,Spring 是一个开发应用框架,什么样的框架呢?轻量级、一站式、模块化,其目的是用于简化企业级应用程序开发 Spring的主要功能: 管理对象, 以及对象之…...
【网络编程】传输层——TCP协议
文章目录 TCP协议TCP协议格式窗口大小六个标志位确认应答机制超时重传机制连接管理机制三次握手四次挥手 流量控制滑动窗口拥塞控制延迟应答捎带应答面向字节流粘包问题TCP异常情况TCP小结基于TCP的应用层协议TCP与UDP的对比 TCP相关实验CLOSE_WAIT状态实验TIME_WAIT状态实验TI…...
【数据结构与算法】如何衡量一个算法的好坏?
目录 1. 算法复杂度1.1 时间复杂度1.2 大O渐进表示法1.2.1 例子引入推导大O法1.2.2 举例 1.3 空间复杂度1.3.1 细分1.3.2 举例 2.什么是好的算法?3. 影响程序运行时间的因数 1. 算法复杂度 算法在编写成可执行程序后,运行时需要耗费时间资源和内存资源 。…...
在PostgreSQL中创建和管理数据库
PostgreSQL是一个强大、开源的关系型数据库管理系统,它提供了丰富的功能和灵活的配置选项,使得它成为许多开发者和组织的首选数据库之一,接下来我会介绍如何在PostgreSQL中创建和管理数据库。 一、安装和配置PostgreSQL 第一步,…...
从哪些方面做好电商系统的网站建设?
电子商务的迅猛发展,建设一款成功的电商系统网站成为企业取得竞争优势的重要一环。下面将从用户体验、网站设计、安全性和性能优化等方面,介绍如何打造一款优秀的电商系统网站。 一、用户体验 一款成功的电商系统网站必须注重用户体验,确保用…...
C++的Odyssey之旅——STL
W...Y的主页 😊 代码仓库分享💕 🍔前言:我们已经将基本语法了解的差不多了,现在我们就该进入C中最重要也是最富有特点的一部分——STL。在学习C语言中我们想要使用顺序表、链表等一些数据结构进行做题时都需要进行这…...
μC/OS-II---内核:多任务与调度
目录 内核:多任务(ucos_ii.h文件的函数)Task创建Task创建(扩展)Task删除/请求删除Task改变Task优先级Task挂起和恢复Task信息获取Task调度器上锁和开锁 内核:调度(oc_core.c文件的函数ÿ…...
【紫光同创国产FPGA教程】——PDS安装教程
本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处 一:软件简介 PangoDesign Suite是紫光同创基于多年FPGA开发软件技术攻关与工程实践经验而研发的一款拥有国产自主知识产权的大规模FPGA开…...
基于Fuzzing和ChatGPT结合的AI自动化测试实践分享
一、前言 有赞目前,结合insight接口自动化平台、horizons用例管理平台、引流回放平台、页面比对工具、数据工厂等,在研发全流程中,已经沉淀了对应的质量保障的实践经验,并在逐渐的进化中。 在AI能力大幅进步的背景下,…...
基于Jaccard相似度的推荐算法---示例
目录 数据展示推荐算法的分类基于相似度基于流行度/上下文/社交网络 Jaccard相似度分析数据的特点可以考虑的方法计算方法优缺点计算用户之间的Jaccard相似度获取与给定最相似的10个用户对1713353的用户推荐10本书 数据展示 import pandas as pd import numpy as np# 读取CSV文…...
基于指数分布算法的无人机航迹规划-附代码
基于指数分布算法的无人机航迹规划 文章目录 基于指数分布算法的无人机航迹规划1.指数分布搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用指数分布算法来优化无人机航迹规划。 …...
vite基础学习笔记:13.Dialog 对话框 (用户注册与登录)
说明:自学做的笔记和记录,如有错误请指正 1. Dialog 对话框组件 目标效果:点击“登录/注册”,弹框 (1)创建全局组件,在官网中查询代码粘贴 (2) 注册和使用全局组件 &a…...
RedisTemplate 使用 pipeline 时需要注意的问题
RedisTemplate 使用 pipeline 时需要注意的问题 RedisTemplate 使用 pipeline 进行批量 set 时,需要把 key 和 value 都转为字节 1. 直接使用 getBytes() 转为字节,在读取数据时,会抛出以下序列化异常 //错误代码 protected void process(…...
uniapp 下载文件到手机
下载后端传递过来的文件 let thil this uni.showLoading({title: 下载中,mask:true }) uni.downloadFile({url: 接口地址, //仅为示例,并非真实的资源header: {"Authorization": token},responseType: blob,success: (res) > {if (res.statusCode 2…...
使用Drupal管理小型项目?试试Docker快速部署Drupal结合内网穿透实现远程访问
🎬 鸽芷咕:个人主页 🔥个人专栏:《Linux深造日志》《C干货基地》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal…...
BSP-STM32移植FreeRTOS
在stm32裸机工程中的Middlewares目录添加freeRtos源码 在裸机工程中的main中调用freertos接口...
【Spring】Spring IOCDI(万字详解)
文章目录 1. Spring是什么?2. 认识IOC2.1 传统程序开发1. Main.java2. Car.java3. Framework.java4. Bottom.java5. Tire.java 2.2 分析传统开发2.3 IOC程序开发1. Main.java2. Car.java3. Framework.java4. Bottom.java5. Tire.java 2.4 分析IOC开发2.5 IOC容器优点…...
ts 使用泛型来做类型映射
使用泛型来做类型映射,将对象(或数组)中类型转换为另一个类型 首先,定义一个类型Student // 定义一个类型Studentinterface Student {name: string,age: number}1、把Student的所有属性都变为可空的 type Nullable<T> {[p in keyof T]: T[p] || …...
Compose - 使用 Paging
一、添加依赖 查看官方最新版本 val paging_version "3.2.1" implementation("androidx.paging:paging-runtime:$paging_version") implementation("androidx.paging:paging-compose:$paging_version") 二、定义数据源 PagingSource 是对其它…...
IDM激活脚本终极指南:三步实现永久免费试用下载管理器
IDM激活脚本终极指南:三步实现永久免费试用下载管理器 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script 还在为Internet Download Manager(…...
大模型落地实战:我们踩过的八个“坑”与填坑指南
大模型浪潮下的测试新战场各位软件测试同仁,大家好。当大语言模型(LLM)从炫酷的概念演示走向真实的业务场景,我们测试人无疑站在了技术变革的最前沿。这不再是传统的功能测试、性能测试,而是一个充斥着不确定性、模糊边…...
C语言day3
变量1.变量中的值,可以发生变化的原因。是因为在定义变量的时候,系统会给变量开辟内存空间。2.初始化 含义:在变量内存空间开辟的同时,装入初始值。变量定义后,如果没有给初值的,变量里就存储了随机值。变量…...
NI硬件平台在结构健康监测中的技术选型与应用
1. NI硬件平台在结构健康监测中的技术选型结构健康监测系统的核心挑战在于如何将物理世界的振动、应变等机械信号转化为可分析的数字化数据。NI的硬件平台之所以成为行业首选,关键在于其模块化设计理念完美匹配了监测系统对灵活性、精度和可靠性的严苛要求。1.1 Com…...
如何使用HTTPie CLI与Traefik:云原生路由器的终极API测试指南
如何使用HTTPie CLI与Traefik:云原生路由器的终极API测试指南 【免费下载链接】cli 🥧 HTTPie CLI — modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. 项目地址: …...
TranslucentTB:让Windows任务栏焕发个性的透明艺术
TranslucentTB:让Windows任务栏焕发个性的透明艺术 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 你是否厌倦了Windows任务栏…...
3分钟快速上手:baidupankey百度网盘提取码智能查询终极指南
3分钟快速上手:baidupankey百度网盘提取码智能查询终极指南 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘分享链接的提取码而烦恼吗?每次遇到需要密码的资源都要四处搜索,浪…...
Resource Override深度解析:实现浏览器资源重定向与内容注入的架构设计
Resource Override深度解析:实现浏览器资源重定向与内容注入的架构设计 【免费下载链接】ResourceOverride An extension to help you gain full control of any website by redirecting traffic, replacing, editing, or inserting new content. 项目地址: https…...
现代CAD技术在RF/微波混频器设计中的应用与优化
1. 现代CAD技术如何重塑RF/微波混频器设计流程十年前我刚入行时,混频器设计还停留在"手算公式试验板调试"的原始阶段。记得第一次设计2.4GHz下变频器时,为了调出理想的转换损耗,整整烧毁了十七个二极管样品。如今在CAD工具的辅助下…...
XUnity自动翻译器:打破语言壁垒,让Unity游戏无障碍畅玩
XUnity自动翻译器:打破语言壁垒,让Unity游戏无障碍畅玩 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾因语言障碍而错过心仪的游戏?面对精美的日式RPG、精彩的…...
