首页 > 编程语言 >提高C#编程水平的50个要点(一)

提高C#编程水平的50个要点(一)

时间:2023-01-18 18:03:53浏览次数:43  
标签:优先 C# 编程 50 接口 Equals 使用 类型 构造函数


1.总是用属性 (Property) 来代替可访问的数据成员
2.在  readonly 和 const 之间,优先使用 readonly
3.在 as 和 强制类型转换之间,优先使用 as 操作符
4.使用条件属性 (Conditional Attributes) 来代替条件编译语句 #if 
5.总是为自定义类重载 ToString 方法
6.区别值类型和引用类型
7.使用不可变的值类型(Immutable Atomic Value Types)
8.在值类型中,确保0是一个合法的数据
9.理解 ReferenceEquals, static Equals, instance Equals 和 比较运算符(==)之间的关系
10.理解 GetHashCode方法的缺陷
11.在编写循环时,优先使用 foreach.
12.在定义变量的时候就将其初始化
13.使用静态构造函数来初始化静态成员变量
14.用多个构造函数时,利用构造函数链
15.使用using和try/finally来处理资源的释放
16.尽量避免产生资源垃圾
17.尽量避免使用装箱(boxing)和拆箱(unboxing)
18.实现类的 Dispose 方法
19.在接口和继承(Inheritance)之间,优先使用接口(interface)
20.区分接口和重载(overrides)
21.用委托(delegate)来实现回调(callback)
22.用事件(event)来定义外部接口
23.避免返回类内部成员的引用
24.使用元数据来控制程序
25.优先使用可序列化(serilizable)类型

标签:优先,C#,编程,50,接口,Equals,使用,类型,构造函数
From: https://blog.51cto.com/u_14365218/6019383

相关文章

  • 华为云代码检查插件(CloudIDE版本)使用指南
    华为云代码检查插件(CloudIDE版本)使用指南​CodeCheck代码检查插件​感兴趣的小伙伴,可以试试使用我们的CodeCheck代码检查插件:CodeCheck代码检查插件免费体验​CloudIDE插件......
  • 学习笔记——定义切面优先级 ;Spring中的JdbcTemplate;JdbcTemplate的常用API
    2023-01-18一、定义切面优先级  1、语法:@Order(value=index)①index是int类型,默认值是int可存储的最大值②数值越小,优先级越高二、Spring中的JdbcTemplate1、JdbcT......
  • WC2023 游记
    这是一次抽象的WCDay0开幕式不想去,睡大觉Day1-4Day1早上的第一课堂太抽象了,润去第二课堂听矩乘,被评论区吓到了下午听题目选讲,感觉都听不太懂,想到之后还有好多的......
  • UVA11538 Chess Queen
    简要题意给你一个\(n\timesm\)的棋盘,你需要在棋盘上放置两个颜色不同的皇后,使得它们互相攻击。求方案数。\(1\leqn,m\leq10^6\)思路下面假设\(n\leqm\)。首......
  • Codeforces Round #834 (Div. 3) A~E泛做
    A.Yes-Yes?构造一个\(N=50\)的字符串,判断是不是子串即可。#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'#definecerr(x)std::cerr<<(#x)<<......
  • 前端性能优化(一)内存泄漏排查之Chorme浏览器的Performance使用
        前段时间leader突然对我说,优化一下前端内存泄漏的问题,对于这个问题,懵逼的我开始了学习之路,获益匪浅,分享一下,抛砖引玉。    我的Chrome浏览器版本108......
  • 写JS的过程中摁F12发现:Uncaught TypeError: Cannot set properties of null (setting
    在写JavaScript的过程中出现如上图显示的问题,很有可能是onblur前面的类型和你定义的类名不一样,要仔细检查一下你写的类名前后是否一致。......
  • Servicemesh如何落地
    传统微服务架构如何落地传统的微服务架构在项目中落地需要借助微服务框架和SDK的能力,那么微服务框架需要具备哪些功能,需要依赖什么环境,落地实践中又会遇到什么问题呢?微......
  • A.World Final? World Cup! (I)【2023牛客寒假算法基础集训营1】
    A.WorldFinal?WorldCup!(I)原题链接题意AB两队ABABABABAB形式轮流罚球共10次,给出01串代表每次罚球的结果,问是否能在第x球后知道比赛结果,能则输出x,若10轮内没有分出......
  • 使用canvas在页面增加文字水印
    学习记录留作参考祝君好运在页面中动态增加水印的几种方法:使用canvas的fillText()结合rotate()方法直接生成,本文使用该方法使用canvas生成一个base64编码......