C# code review

c# 如何利用AI搭建code review框架 AI搭建code review框架是一个。在工控 / 上位机 / C# 团队里,,可以显著减少低级 Bug(尤其是 PLC 通信、线程、资源释放这类问题)。下面我给你一套,从,全部基于 C# 生态。 阅读详情

Magic number

如果同一字符串出现两次以上,使用变量替换

About "if"

var b = false
if(b)
 Console.WriteLine(b);

应该使用

if(b) Console.WriteLine(b);

String concatenation

字符串相加:

var concatenatedString = "a" + "b";

应该使用Concat方法代替

var concatenatedString = string.Concat("a", "b");

Const vs readonly

Const 变量在编译期间使用变量的值直接替换此变量,因此具有更高效率,但使用不小心容易出错

例子最能说明问题:

有一个C#库程序名字为Constants 

public class OurConstants
{
  public const int FAILURERESULT=-1;
  public static readonly int SUCCESS = 1;
}
主程序名字为ConstReadonlyTest,引用Constants库

class Program
{
  static void Main(string[] args)
  {
    Console.WriteLine("Constant: {0}", OurConstants.FAILURERESULT);
    Console.WriteLine("Constant: {0}", OurConstants.SUCCESS);
  }
}

编译之后运行输出结果如下

Constant: -1

Constant: 1

对上面库程序作如下修改

public class OurConstants
{
  public const int FAILURERESULT=-2;
  public static readonly int SUCCESS = 2;
}

重新编译Constants,将Constants.dll 拷贝到主程序ConstReadonlyTest目录,注意不要编译主程序,再次运行,结果如下

Constant: -1

Constant: 2

应该能琢磨出他们的区别了吧

在开发组件(库)供其他程序使用时,应该使用避免使用const


Bad IDisposable Usage

先看一个错误的使用方式

classs Test
{
  public static void Run()
  {
    FileStream stream = new FileStream();
    //...
    stream.Close();
    stream.Dispose();
    
  }
}

如果在stream操作的过程中发生异常,Close()和Dispose()方法将不会调用,从而会导致内存泄露

改进版:

classs Test
{
  public static void Run()
  {
    try
    {
      FileStream stream = new FileStream();
      //...
      stream.Close();
    }
    catch
    {

    }
    finally
    {
      stream.Dispose();
    }
  }
}

但是 比较冗余,
最终版,使用using 语句
classs Test
{
  public static void Run()
  {    
    using(  FileStream stream = new FileStream())
    {
     //...
      stream.Close();
    }
  }
}

Enumeration Initialization

枚举,

enum Week
{
Sun = 1,
Mon = 2,
Tue = 3,
Wed = 4,
Thu = 5,
Fir = 6
}

enum Gender
{
  Male,
  Female
}

Week week;// 默认值为0
Gender gender;// 默认值为Male

对于Week使用默认值时,就很容易导致错误,建议是为每个enum声明无效值,

enum Week
{
Invalid = 0,
Sun = 1,
Mon = 2,
Tue = 3,
Wed = 4,
Thu = 5,
Fir = 6
}

enum Gender
{
  Invalid = 0,
  Male,
  Female
}

Large Method Bodies

将一个大的方法设法分割成多个小的方法,每个方法只做一件事,通过方法名很容易得知次方的的作用,从而起到注释的作用

Unity开发提速:用Claude Code AI辅助生成C#脚本的完整实战 AI编程工具正逐步改变游戏开发的工作方式。在Unity引擎中,开发者常被C#脚本编写、API差异调试和生命周期管理拖慢效率。Claude Code作为一款终端AI代理,能直接读取项目结构、理解上下文并自动生成或修改脚本,实现从自然语言到可运行代码的快速转化。本文从基础概念切入,梳理环境配置、核心指令与工程实践,并结合2D太空射击游戏案例,展示如何通过AI辅助完成玩家控制、子弹发射、敌人AI和计分系统等典型模块。掌握这类工具,有助于将更多精力投入玩法设计与体验打磨。 阅读详情

相关推荐

Codereview 代码审查工具(国人开发)

软件介绍: 一、软件特色 功能丰富:实现文件内容、度量、命名、注释、类图、Halstead等审查。 简单易用:无需安装,直接使用,直接删除;所有操作点击完成。 直观可视:分析结果与源代码在同一界面显示对照,快速定位。 语言多样:支持Visual Basic .NET、Java编程语言的代码审查。 自定义规范:通过自定义变更命名规范、注释规范完成代码审查。 二、功能列表 Info(内容):获取文件内容; Measure(度量):度量代码基本要素; Naming(命名):审查变量命名情况; Comment(注释):审查文件、类、函数等的注释情况; Diagram(类图):显示类图; Halstead(复杂度):计算Halstead复杂度. 三、官方网站 http://www.codereview.com.cn

C#拿怎么做Codereview?

   要生猛的面对生活 //<![CDATA[Sys.WebForms.PageRequestManager._initialize(AjaxHolder$scriptmanager1, document.getElementById(Form1));Sys.WebForms.PageRequestManager.getInstance()._

Simplicity is more complicated than you think 3991

code_review工具简介及安装

code_review工具简介及安装code_review工具简介及安装code_review工具简介及安装code_review工具简介及安装code_review工具简介及安装

Review C#代码的一些总结

1,文件版权头;using顺序–System在最前其余按字母排序,分类之间有空行;去除多余的using,去除多余的空行;注意缩进。 2,log注意对应的级别,该用LogError的地方不要用LogInfo 3, 判断父类对象的具体子类类型并转换进行操作时,建议在条件判断中进行模式匹配避免Casting ParentClassA a = …; 不建议 if(a is ChildClassB) { ( (ChildClassB)a).ChildItem =…; } 建议用 if(a is ChildClass

weixin_28140939的博客 533

分辨率太小 / Retina 模糊 / 全屏异常:一篇解决 VMware Fusion + Kali 显示问题(Xfce & GNOME 通用)

本文提供了在Mac(尤其是Retina屏)上运行Kali Linux时常见显示问题的完整解决方案。主要解决三类问题:分辨率太小、Retina屏模糊和全屏异常。核心思路是先安装open-vm-tools-desktop并重启,这是90%问题的根源。然后根据不同问题分别处理:调整DPI/Scale解决字体大小,避免双重缩放导致的模糊,以及通过窗口拉伸和重启解决全屏异常。文章还给出了针对Xfce和GNOME的最佳配置建议,并强调调试完成后应创建快照以便快速恢复。最后提供了速查表,方便用户快速参考关键步骤。

致力于分享在各类技术领域的学习与实践经验,涵盖编程、虚拟化、开源工具、网络安全等。 876

【OTDR曲线工具箱】04 批量生成sor文件

软件下载地址:http://120.78.150.214:9999/isora.zip 通过一个测试数据sor文件,批量生成多个测试文件(基于Bellcore GR196及SR-4731标准)。主要考虑哪些问题: 1、sor测试是否符合要求(主要是衰减系数) 2、多个文件的创建时间 3、文件必须随机处理,不要看省去一模一样。 来说说怎么操作的 第一步:选择参考曲线 参考曲线的选择由两种方法:从文件中导入、从曲线库中选择。 其中曲线库分为公共库和个人库两种,平时浏览的sor文件都可以加载到库中。 第二步

夜晚是传说的博客 5275

代码review,瑞出事来了!

不久之前,部门进行了一次代码评审。代码整体比较简单,该吹B的地方都已经吹过了,无非是些if else的老问题而已。当翻到一段定时任务的一步执行代码时,我的双眼一亮,觉得该BB两句了。谁知这群家伙,评审的时候满满的认同感,但评审结束不久,就给我冠了个事B的称号。今天我就把当时的这些话儿整理整理,让大家说道说道,我到底是不是个事B。淦!

BASK2312的博客 206

手把手教你用Verilog实现AT24C64的I2C读写(附完整仿真流程)

本文详细介绍了如何使用Verilog HDL设计AT24C64 EEPROM的I2C控制器,并配合ModelSim完成完整的仿真验证流程。内容涵盖I2C协议解析、Verilog状态机设计、AT24C64读写操作实现,以及仿真波形分析和调试技巧,为FPGA开发者提供了一套完整的EEPROM控制解决方案。

3c4x5z6v7b的博客 846

2021年 6 月 code review 记录

name: 1.showOrHidden(显示隐藏) ==> toggle(切换) performance: 1. //bad if(key.indexOf('Date')!=-1){} //good if(key.includes('Date')){} //bad if(data[key] !=="" || data[key] !== null || data[key] !== undefined){} //good if (isEmpty...

ruiti的博客 329

基于R和gephi做宏基因组与代谢组等多组学联合network相关性网络图

拿到多组学的数据后一直在找合适的方法将二者进行关联,比如我这里是三种体液的代谢组与一种体液的宏基因组。需求是对多组学进行关联分析,直到最近看到不少文章里利用Gephi将相关性表格进行可视化的图,效果还不错,于是写个过程记录自用。这里演示的是属水平的差异菌群相对丰度(宏基因组结果)与代谢组鉴定到的差异代谢物进行关联。先是计算相关性生成graphml格式文件使用Gephi软件进行可视化。

twocanis的博客 6789

C++经典面试题100例及答案

答:把一些具有共性的对象归类后形成一个集合,也就是所谓的类。答:这样可以提高编译效率,因为分开的话只需要编译一次生成对应的.obj文件后,再次应用该类的地方,这个类就不会被再次编译,从而大大的提高了编译效率。答:这种函数会自动为内联函数,这种函数在函数调用的地方在编译阶段都会进行代码替换。答:常对象是指在任何场合都不能对其成员的值进行修改的对象。答:所谓的回调函数,就是预先在系统的对函数进行注册,让系统知道这个函数的存在,以后,当某个事件发生时,再调用这个函数对事件进行响应。

usstmiracle的博客 3万+

C# Code Review Checklist

Ted GraHam 提到了39 条 CheckList, 我觉得还是总结的挺全面. Are exceptions used to indicate error rather than returning status or error codes? 使用异常来只是错误而不是使用状态或者错误代码值 Are all classes and public methods commented w...

weixin_30520015的博客 147

从4A架构的角度出来 帮我分析一下:数字化转型深水区:企业架构如何成为价值重构的核心引擎?

4A 架构的本质是构建企业的数字神经系统,通过业务感知、数据传输、决策执行、技术支撑的闭环,实现从效率提升到生态重构的质变。正如华为通过该架构实现全球研发资源统一调度,某零售集团借此打造线上线下融合的新零售体系,当业务、数据、应用、技术四个维度形成共振时,企业将获得持续进化的数字免疫力,在不确定的市场环境中保持韧性生长。这一过程不仅需要技术工具的升级,更依赖组织文化的变革 —— 从 “部门墙” 到 “能力网” 的转型,才是数字化转型深水区的终极挑战。

金牌架构师 1046

Code Review:C#与JAVA的哈希表内部机制的一些区别

看C#与JAVA源码时发现C#与JAVA哈希表的实现略有不同,特此分享一下。 --- ## 基本结构比较 ### JAVA的桶 ```java 278 static class Node<K,V> implements Map.Entry<K,V> { 279 final int hash; 280 final K key; 281 V value; 282 Node<K,V> next; 283 284 Node(

liu_if_else的博客 2690

11、机器学习中的聚类与隐马尔可夫模型

本文介绍了机器学习中的两种重要方法:聚类算法和隐马尔可夫模型(HMM)。聚类作为无监督学习的代表,适用于发现无标签数据中的结构,常见算法包括K-均值和自组织映射(SOM),并在传感器数据分析等场景中展现应用价值。隐马尔可夫模型则是一种可解释的序列模型,用于从观测数据中推断隐藏状态,广泛应用于语音识别、自然语言处理和生物信息学等领域。文章详细讲解了HMM的核心概念如马尔可夫性质、转移与发射概率,并通过TensorFlow实现了前向算法,展示了其计算观测序列概率的动态规划思想。最后对比了两类方法的应用场景,展望

garlic的博客 180

下采样优化实战:用ADown显著提升YOLOv11的多尺度特征保持能力

ADown 以“可编程梯度信息+多分支特征融合”打破了传统下采样的性能壁垒,为 YOLOv11 带来了多尺度特征的精准传递能力。从原理到代码集成,本教程已为你铺就了一条“小目标检测精度跃升”的实战路径。现在就动手尝试吧——当你看到模型对极小目标也能精准识别,且特征图细节完整时,你会明白这份技术探索的价值。我很乐意在你实践过程中帮你解决任何问题,让我们一起推动目标检测在下采样领域的边界。

FJN110的博客 423

Code Review Checklist and Guidelines for C# Developers

Checklist1. Make sure that there shouldn't be any project warnings.2. It will be much better if Code Analysis is performed on a project (with all Microsoft Rules enabled)and then remove the warnings.3...

weixin_30360497的博客 159

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C# 13模式匹配:从入门到“让Code Review同事集体沉默”的7个杀手级写法(含VS 2022.2智能提示配置秘钥)

C# 13模式匹配增强开发大幅提升代码表达力与安全性。本文详解7种高阶写法:嵌套解构、类型守卫、列表模式等,覆盖API响应解析、领域模型验证等典型场景,配合VS 2022.2智能提示配置秘钥,实现零错误推导。值得收藏

Instrustar的博客 295

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Unity C#反模式诊断:识别与规避垃圾代码四大陷阱

在Unity游戏开发中,C#代码质量直接决定项目可维护性与运行稳定性。理解常见反模式是提升工程能力的基础——从上帝引用链引发的空引用崩溃,到Update永动机导致的帧率雪崩;从序列化幻觉造成的策划-程序协作断层,再到协程沼泽埋下的时序炸弹。这些并非语法错误,而是语义层面的设计失当,其根源常在于对Unity生命周期、序列化机制及性能边界的认知偏差。掌握这些反模式的识别逻辑与防御策略,不仅能快速定位遗留系统中的技术债务,更能构建健壮的Code Review体系与自动化质量门禁。本文聚焦Unity C#开发中最高

weixin_33726318的博客 637

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

MiniMax M2.7上线!C#接入自我进化大模型,开发效率暴涨50%

TL;DR:MiniMax今天刚发布的M2.7不是普通的大模型更新,而是个能自己给自己"打补丁"的赛博员工。它通过Agent Harness体系实现自我进化,在研发场景中能扛下30%-50%的活儿。本文用C#手把手教你接入这个"会自动升级的外挂",让你的代码生成、文档处理、Bug分析效率直接起飞。以前总有人说C#在AI时代落伍了,只能写写企业级CRUD。但MiniMax M2.7的出现,加上它今天刚发布的Agent Harness自我进化能力,给了.NET开发者一个绝佳的反击机会。

人工智能AI技术 878

C# Code Reviews using StyleCop

Table of Contents IntroductionC# Code Reviews using StylecopComparing FXCOP with StyleCopIssue of Code Review using FXCOPStyleCop Code Parsing LogicMaking the Custom Rules ClassLet Us Do Something ...

weixin_30483013的博客 152

2022年10月 .NET CORE工具案例-DiffPlex文本差异组件

对于开发人员来说,Git 是我们经常使用的工具,在每次编写完代码并提交后,我们可以通过 git diff 来对比不同版本之间的代码的差异,当然也可以借助一下开发工具, 这样可以让我们很直观的看到修改了哪里?不同版本之间有什么不同?这样也可以很方便的来做 code review。对于c#就有一个DiffPlex文本差异组件来实现git的功能。

微软MVP Eleven 3万+
上一篇: 使用Fiddler搭建Asp.net webapi与Android/IOS调试环境
kaixuan-teng
博客等级 码龄22年 1粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值