编写干净的 C# 代码的技巧 - 第 3 部分

编写干净的 C# 代码的技巧 - 第 3 部分

如果您遵循这 5 个步骤,您可以开发出更清晰的项目。

尽可能多地使用 C# 代码 阅读 并且应该很容易理解,但这通常会很困难,因为开发人员有不同的编码风格。因此,这 5 项内容将帮助您编写更具可读性的 C# 代码,让您团队中的每个人或将来从事您项目的人都可以轻松理解这些代码。

您需要编写的代码行数也可以通过精心设计的 C# 类和函数来减少,因为更短的方法和更少的行数通常会提高代码的清晰度。

始终封装条件语句

封装被定义为单个单元下的数据集合。

一个不好的用途:

 if (website.state == "down")  
 {  
 // ...  
 }

一个很好的用途:

 如果(网站.IsDown())  
 {  
 // ...  
 }

此外,封装允许对编写代码的碎片整理进行更多控制。

使用私有/受保护成员

当不使用私有/受保护成员时,它们可能会被修改( 意外或无意 as) 是开放的 这可能会导致代码中的错误。

我们在代码中 从权限 我们不能忘记我们是有责任的。这可能看起来有点抽象,但如果字符串需要是只读的 , 是只读的并且 您有责任表明它不是书面的。

一个不好的用途:

 类车  
 {  
 公共字符串品牌{获取;放; } 大众车(串品牌)  
 {  
 品牌=品牌;  
 }  
 } var car = new Car("保时捷");  
 Console.WriteLine(car.Brand); // 汽车品牌:保时捷

一个很好的用途:

 类车  
 {  
 公共字符串品牌{获取; } 大众车(串品牌)  
 {  
 品牌=品牌;  
 }  
 } var car = new Car("保时捷");  
 Console.WriteLine(car.Brand); // 汽车品牌:保时捷

放; 通过不使用它,我们可以防止将来意外更换。

学习使用 Setter 和 Getter

大多数时候,我们不指定公共、私有或受保护的方法。 这会更改对象的属性。 它给了我们更好的控制。

一个不好的用途:

 类 BankAccount  
 {  
 公共双余额 = 5000;  
 } var bankAccount = new BankAccount(); // 买一杯卡布奇诺 _☕️_ ...  
 bankAccount.Balance -= 15

一个很好的用途:

 类 BankAccount  
 {  
 私人双 _balance = 0.0D; 公共双平衡{  
 得到 {  
 返回_余额;  
 }  
 } 公共银行账户(余额 = 1000)  
 {  
 _balance = 余额;  
 } 公共无效WithdrawBalance(整数)  
 {  
 如果(金额 > _balance)  
 {  
 throw new Exception('金额大于当前余额。');  
 } _balance -= 数量;  
 } public void DepositBalance(int amount)  
 {  
 _balance += 数量;  
 }  
 } var bankAccount = new BankAccount(); // 买一杯卡布奇诺 _☕️_ ...  
 bankAccount.WithdrawBalance(价格:15); 余额 = bankAccount.Balance;

此外,在继承此类时,默认情况下, 有可能覆盖此功能。 这给你的可能性很多。

比组合继承更好

虽然很多人不知道是使用继承还是使用组合,但我说最好选择使用组合。

起初,许多程序员认为继承更好,但您应该始终问自己,组合是否可以更好地建模问题。

一个不好的用途:

 类车  
 {  
 私有字符串模型 { 获取;放; }  
 私人字符串品牌{获取;放; } 大众车(串车型、串品牌)  
 {  
 型号=型号;  
 品牌=品牌;  
 } // ...  
 } // 不好,因为汽车“拥有”引擎数据。  
 // CarEngineData 不是 Car 的类型 类 CarEngineData : 汽车  
 {  
 私有字符串模型 { 获取;放; }  
 私人字符串品牌{获取;放; } public CarEngineData(字符串模型,字符串品牌,字符串位移,字符串马)  
 {  
 // ...  
 } // ...  
 }

一个很好的用途:

 类 CarEngineData  
 {  
 公共字符串位移{得到; }  
 公共字符串马{得到; } public EmployeeTaxData(字符串位移,字符串马)  
 {  
 位移=位移;  
 马=马;  
 } // ...  
 } 类车  
 {  
 公共字符串模型{获取; }  
 公共字符串品牌{获取; }  
 公共汽车引擎数据引擎数据{得到; } 大众车(串车型、串品牌)  
 {  
 型号=型号;  
 品牌=品牌;  
 } public void SetEngine(字符串位移,双马)  
 {  
 EngineData = new CarEngineData(位移,马);  
 } // ...  
 }

要知道哪个最好用 让我们看一个简单的例子

  • 关系 ” 是一个 ”(人类-动物)
  • 关系 ” 有个 ”(用户-用户详细信息)

不要使用魔术字符串

不知道的人,魔术字符串是必须在代码中指定的字符串值。在大多数情况下,魔术字符串几乎总是重复的,不能自动更新。 它们往往是错误的来源

一个不好的用途:

 if (userRole == "Admin")  
 {  
 // 你的逻辑代码  
 }

一个很好的用途:

 常量字符串 ADMIN_ROLE = "管理员"  
 if (userRole == ADMIN_ROLE)  
 {  
 // 你的逻辑代码  
 }

这样,如果对其中任何一个进行任何更改,我们将防止这些文本被重复和出错。

这些方法比上一篇文章中的方法高级一点,但仍然很简单—— 但非常有用 .正如我所说,用 C# 编写更简洁的代码的方法数量比宇宙还多。 是无限的。 这就是为什么我们将在后面的文章中介绍不同的技巧和其他一些技巧来提高我们的代码质量。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/11538/43210311

posted @   哈哈哈来了啊啊啊  阅读(51)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示