编程经验(C#)
本文记录我在编程里学到的一些小技巧,遇到了就记录一下。
1.如果通用接口中的回调没有参数,而调用时需要参数,这个时候可以用匿名函数多封装一层。例如:
Private void Main()
{
Fun(() =>
{
Fun2();
});
} private void Fun(Action callBack)
{} private void Fun2(int a)
{}
2.List使用lambda表达式升序或降序排序
private List<int> list = new List<int>(); private void Sort()
{
list.Sort((lsh, rhs) => lsh - rhs);// 升序
list.Sort((lsh, rhs) => rhs - lsh);// 降序
}
3.对bool类型赋值尽量不要使用判断语句来赋值true 或者 false,而是把判断语句写到对bool变量赋值时。
private int a = ;
private bool IsZero; private void Init()
{
IsZero = a == ;// 正确 // 下面这种写法尽量避免
if (a == )
{
IsZero = true;
}
else
{
IsZero = false;
}
}
4.使用string.IsNullOrEmpty 代替 str == null || str == string.Empty
5.避免使用一大串的if else。和一大串的switch。可以用数组来代替。
private bool A1;
private bool A2;
private bool A3;
private bool A4;
private bool A5; private int currentId = ; private int mTarge = ; private void Init()
{
var targs = new[] {A1, A2, A3, A4, A5};
targs[currentId - ] = false; for (int i = ; i < targs.Length; i++)
{
if (targs[i])
{
mTarge = ;
break;
}
}
// 用上面的代码代替下面的代码
//switch (currentId)
//{
// case 1:
// A1 = false;
// break;
// case 2:
// A2 = false;
// break;
// case 3:
// A3 = false;
// break;
// case 4:
// A4 = false;
// break;
// case 5:
// A5 = false;
// break;
//} //if (A1)
//{
// mTarge = 1;
//}
//else if (A2)
//{
// mTarge = 1;
//}
//else if (A3)
//{
// mTarge = 1;
//}
//else if (A4)
//{
// mTarge = 1;
//}
//else if (A5)
//{
// mTarge = 1;
//}
}
6.对于不明来路的效果,一定要断点查看堆栈,保持这个好习惯,找到问题的根源而不是去猜测。
7.任何可能会为null的变量,使用时都要进行判空。
8.计算一段程序的运行时间
Stopwatch stopwatch = new Stopwatch();// 用来计算程序运行时间
stopwatch.Start();// 计算开始 //.....要执行的代码 stopwatch.Stop();// 计算结束
9.每秒显示一次当前时间,需要在可以不停的访问的地方进行调用。
private DateTime mLastRefreshTime = DateTime.MaxValue; public void RefreshTime(DateTime now)
{
var transitionTime = now;
if(mLastRefreshTime == DateTime.MaxValue)
{
mLastRefreshTime = transitionTime;
return;
} if(transitionTime.Second != mLastRefreshTime.Second)
{
// 进入这里说明已经过去了一秒。
}
}
更新日期:2018/7/19/18 : 01
编程经验(C#)的更多相关文章
- iOS开发编码建议与编程经验
作者:乞力马扎罗的雪(GitHub) 原文 在开发过程中,我们不仅要去看别人的代码,也要让别人看我们的代码.那么,有一个良好的编码习惯将会非常重要.下面将会罗列使用Objective-C来开发iOS的 ...
- C++的XML编程经验――LIBXML2库使用指南[转]
C++的XML编程经验――LIBXML2库使用指南 写这篇文章的原因有如下几点:1)C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,LIBXML2是其中一种很优秀的XML ...
- Python/Numpy大数据编程经验
Python/Numpy大数据编程经验 1.边处理边保存数据,不要处理完了一次性保存.不然程序跑了几小时甚至几天后挂了,就啥也没有了.即使部分结果不能实用,也可以分析程序流程的问题或者数据的特点. ...
- 编程经验点滴----在 Oracle 数据库中保存空字符串
写程序这么多年,近几天才发现,向 Oracle 数据库表中,保存空字符串 '' ,结果成了 null. 由于数据库数值 null 的比较.判断,与空字符串 '' 存在差异.一不留神,代码中留下了 bu ...
- C++的XML编程经验――LIBXML2库使用指南
C++的XML编程经验――LIBXML2库使用指南 写这篇文章的原因有如下几点:1)C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,LIBXML2是其中一种很优秀的XML ...
- Kittenblock画笔基础,移动留下痕迹的蝴蝶,图形化编程经验分享
Kittenblock画笔基础,移动留下痕迹的蝴蝶,图形化编程经验分享 跟很多学生聊过,很多学生不是不努力,只是找不到感觉.有一点不可否认,同样在一个教室上课,同样是一个老师讲授,学习效果迥然不同.关 ...
- Linux-shell编程经验记录
Linux-shell编程经验总结 1.接收用户输入 #读取用户输入并且将输入保存到input变量中 read -p "请输入:" input #也可以先输出信息再进行读取,这里的 ...
- 写给已有编程经验的 Python 初学者的总结【转】
当我开始学习Python的时候,有些事我希望我一早就知道.我花费了很多时间才学会这些东西.我想要把这些重点都编纂到一篇文章当中.这篇文章的目标读者,是刚刚开始学习Python语言的有经验的程序员,想要 ...
- 写给已有编程经验的 Python 初学者的总结
当我开始学习Python的时候,有些事我希望我一早就知道.我花费了很多时间才学会这些东西.我想要把这些重点都编纂到一篇文章当中.这篇文章的目标读者,是刚刚开始学习Python语言的有经验的程序员,想要 ...
- <三>年编程经验、何去何从?
SharePoint开发经验3年+,基本的SharePoint模板开发都胜任: Asp.net基础一般,Html.Css.JavaScript.JQuery.Ajax.Sql.服务器等也都有所涉猎,对 ...
随机推荐
- Tomcat 调优及 JVM 参数优化
Tomcat 本身与 JVM 优化 Tomcat:调整Server.xml JVM:bat启动服务方式的话修改catalina.bat 服务式启动的话参考:http://www.cnblogs.com ...
- vsftpd 安装配置详细教程
linux下ftp软件不少,大致特点:<br /> wu-ftp:比较老牌,但针对它的攻击比较多,设置比较麻烦,但功能比较强大.<br /> vsftpd:功能强大,配置也比较 ...
- python基础===基于cv2的播放器
import cv2 import threading import win32gui,win32con class Producer(threading.Thread): ""& ...
- Ubuntu10.04 下安装RabbitVCS
安装RabbitVCS的方法步骤如下: 1.sudo add-apt-repository ppa:rabbitvcs/ppa #将rabbitvcs的添加到源里面.(次操作会提示是否要添 ...
- Codeforces 86D - Powerful array(莫队算法)
题目链接:http://codeforces.com/problemset/problem/86/D 题目大意:给定一个数组,每次询问一个区间[l,r],设cnt[i]为数字i在该区间内的出现次数,求 ...
- 20165301陈潭飞2017-2018-2 20165301 实验三《Java面向对象程序设计》实验报告
2017-2018-2 20165301 实验三<Java面向对象程序设计>实验报告 一.敏捷开发与XP实践-1 实验要求: 在IDEA中使用工具(Code->Reformate C ...
- web 端 gantt组件选型
gantt - 甘特图 甘特图(Gantt chart)又称为横道图.条状图(Bar chart).其通过条状图来显示项目,进度,和其他时间相关的系统进展的内在关系随着时间进展的情况.以提出者亨利·L ...
- 非常粗糙的react网页ppt
import React, {Component} from 'react'; import './slide.css'; class Page extends Component { constru ...
- 开始学习MaxCompute
https://help.aliyun.com/document_detail/34615.html?spm=a2c4g.11186623.6.688.jVxTMW
- 关闭windows 7的自动休眠功能
powercfg -h off powercfg -h on https://www.tulaoshi.com/n/20160401/2075397.html powercfg -h on 该文章&l ...