c#装B指南
要想让自己的代码,看起来更优雅,更有逼格,更高大上,就一定要写出晦涩难懂,而又简洁的代码来。
对于类自身的全局变量,一定要加this,对于基类的,一定要加base。反射不要多,但一定要有,而且偶尔就来上那么一两个。
接口,抽象类,抽象方法一定要懂得利用。可以的话,配上 :base(param), where T : interface 之类的方式。
对于event,delegate 要常用。而且不要直接delegate(),要用delegate.invoke();
如果对于自己的功底有把握的话,delegate.beginInvoke()也是很显逼格的一种方式。
async,await之类的能免则免,尽可能的封装delegate,去beginInvoke。
命名也一定要尽显逼格,对于变量名,怎样短怎样来。对于方法名、事件名,怎样长怎样来。
如果自己封装cache,要用key/value数据格式, 不要用Dictionary,Hashtable,一定要用ConcurrentDictionary/IEnumable<KeyValuePair>,除了对外公开 object GetValue(string Key)这样的方法以外,必须还得配上索引器 public object this[string Key]。
对于lock,monitor,autoResetEvent,跟反射一样,不要多,但是一定要有,且必须醒目。
对于任何功能,只要有把握,就先弄个Init,启动两个以上的线程,然后加各种ConcurrentStack,ConcurrentQueue之类的代码。若功能实在是太简单,也可以加上Task.Factory.StartNew(()=>{});
然后要学会使用各种IQueryable,lambda,Func<>, linq,linq树,入眼皆是一片的startWith, continueWith,AsParallel,Expression<>,()=>{}等, 而且一定要随处可见from ... into ... select等。
各种匿名函数,匿名委托,匿名类,各种约束,也要如同家常便饭,信手拈来。
然后就是各种语法糖,也要灵活运用,对于需要返回两个以上值的,不要用ref, out来返回参数,要用Tuple,对于返回[]的,要常用yield。
对于任何类,没要求的,先继承了IDispose再往下写。using是绝逼不能少的。
对于Switch..case,工厂,策略,一律统统戒掉,要灵活使用IOC,而且绝逼不能使用任何第三方的,如Autofac,Unity,Castle之流。一定要自己封装,耍上几个Attribute,CreateInstance,局部的也可采用dynmaic。
对于不再使用的代码,或是已经重构掉的代码,也不要注释,或者删掉,要加上[Obsolete],来展示这是自己的优化成果。
嗯,排版上也要注意,对于参数比较多的,一定要每个参数占一行,对于传实体的,一定不要在函数外定义,而是在参数上面new class{ xxx };且每个大括号,必须独占一行。
对于方法里面代码比较长的, 也要常用{}来进行分段,且每个大括号,必须独占一行。
对于低级幼稚的,一定要避免。比如 return num == 1 ? true : false; 之类的代码,就不要出现了,直接 return num == 1;
对于Convert.ToInt32(Request["key"]);double.TryParse(Request["key"], out double)之类的代码,也不要暴露出来,要学会用扩展类Request.Form[].ToInt();ConfigurationManager.Appsetting[""].ToDouble()等, 也可以使用 .ToValue<int/double> 之类的方式。
c#装B指南的更多相关文章
- 最全面的Git 使用规范装逼指南[转载]
<!DOCTYPE html> <script type="text/javascript"> window.logs = { pagetime: {} } ...
- python 冷知识(装13 指南)
python 冷知识(装13 指南) list1 += list2 和 list1 = list1 + list2 的区别 alpha = [1, 2, 3] beta = alpha # alpha ...
- JavaScript装逼指南
如何写JavaScript才能逼格更高呢?怎样才能组织JavaScript才能让别人一眼看出你不简单呢?是否很期待别人在看完你的代码之后感叹一句“原来还可以这样写”呢?下面列出一些在JavaScrip ...
- 程序员装B指南
一.准备工作 "工欲善其事必先利其器." 1.电脑不一定要配置高,但是双屏是必须的,越大越好,能一个横屏一个竖屏更好.一个用来查资料,一个用来写代码.总之要显得信息量很大,效率很高 ...
- 装b指南
提溜一个糖水黄桃罐头瓶,放在桌边,坐下以后,脖子略微后仰,翘着二郎腿,低头盯着屏幕看需求. 最好点一根烟,牌子无所谓,能冒烟就行.要得就是云山雾绕的感觉,从烟雾中眯着眼睛看出去,一副胸有成竹的样. 一 ...
- JavaScript 装逼指南
Summary 本文秉承着 你看不懂是你sb,我写的代码就要牛逼 的理念来介绍一些js的装逼技巧. 下面的技巧,后三个,请谨慎用于团队项目中(主要考虑到可读性的问题),不然,leader 干你没商量. ...
- 程序员装X指南
一.准备工作“工欲善其事必先利其器.” 1.电脑不一定要配置高,但是双屏是必须的,越大越好,能一个横屏一个竖屏更好.一个用来查资料,一个用来写代码 .总之要显得信息量很大,效率很高. 2.椅子不一 ...
- 程序员装B指南(转载)
转自:http://www.oschina.net/question/615783_115390 一.准备工作 "工欲善其事必先利其器." 1.电脑不一定要配置高,但是双屏是必须的 ...
- 这些JavaScript编程黑科技,装逼指南,高逼格代码,让你惊叹不已
Javascript是一门很吊的语言,我可能学了假的JavaScript,哈哈,大家还有什么推荐的,补充送那啥邀请码. 本文秉承着:你看不懂是你SB,我写的代码就要牛逼. 1.单行写一个评级组件 &q ...
- 软件攻城狮究级装B指南
引言 装B于无形,随性而动,顺道而行,待霸业功成之时,你会发现:装B是牛B最好的的试金石. -- SuperDo 第一章.人间兵器(准备工具) <论语·魏灵公>:“工欲善其事,必先利其器. ...
随机推荐
- vm上安装ubuntu
图解演示环境版本: 本机系统: WIN7 虚拟机:VMware Workstation 8 (英文版) 安装目标:Ubuntu Desktop 12.04 LTS (请点击这里)先下载好iso镜像文 ...
- Python3 学习第十弹: 模块学习三之数字处理
math模块 提供基础的数学函数, cos(3.14) = -0.999..(弧度制) acos(1) = 0.0 sqrt(9) = 3.0 degrees(3.14) = 179.9999..(弧 ...
- hdu1050(贪心)
囧 . 想了好久,一开始想的是一个连通图怎样用黑白两色染色,想了各种算法发现都不好做,然后灵机一动这不是网路流吗,然后想怎么建图,如果转换成网络流这题就好做了,建图加个二分应该就可以解决了,最后又发现 ...
- laravel创建新model数据的两种方法
laravel中的CRUD操作中,通过对代表数据表中row的model对象操作,来更新数据库表. 对于创建新的row的操作,有两种功能上相同的方法: 1.create: $user = User::c ...
- R语言实战读书笔记(二)创建数据集
2.2.2 矩阵 matrix(vector,nrow,ncol,byrow,dimnames,char_vector_rownames,char_vector_colnames) 其中: byrow ...
- 适用于Firemonkey的Json解析对象XsuperObject使用方法介绍
XSuperObject是适用于FileMonkey平台的JSON解析组件,能够在Android,IOS,MACOS,WINDOWS等多个平台使用 点击下载 Sample JSON { "n ...
- PHP几个几十个G大文件数据统计并且排序处理
诸多大互联网公司的面试都会有这么个问题,有个4G的文件,如何用只有1G内存的机器去计算文件中出现次数最多的数字(假设1行是1个数组,例如QQ号 码).如果这个文件只有4B或者几十兆,那么最简单的办法就 ...
- 类的加载到反射reflect
类的加载: 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载.连接.初始化这三个步骤来实现对这个类进行初始化. 加载: 就是指将class文件加载进入内存,并为之创建一个Class对 ...
- IOS中字符串操作
1.比较大小 - (NSComparisonResult)compare:(NSString *)string; 返回值NSComparisonResult有3种情况: NSOrderedAscend ...
- NBUT 1122 Shameimaru's Candid Camera(水)
题意: 给n*m个格子,初始时每个格子中有个数值为0,部分格子中含有炸弹,每个炸弹爆炸可以将周围的8个非炸弹格子中的数值加1,求全部炸弹炸完后那些非0且非炸弹格子中的数是多少. 思路: 另开一个矩阵, ...