程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 論C#逼格手冊,

論C#逼格手冊,

編輯:C#入門知識

論C#逼格手冊,


水文。如何讓自己的代碼看起來,更有逼格?

 

要想讓自己的代碼,看起來更優雅,更有逼格,更高大上,就一定要寫出晦澀難懂,而又簡潔的代碼來。

對於類自身的全局變量,一定要加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的算法C有個上下標的那種,好久沒用忘光了

C表示組合方法,下標是總量,上標是選出的數量,C(下標X,上標Y)就表示從X個物體中選出Y個物體的組合方法的多少。
C(下標X,上標Y)=C(下標X,上標C-Y)是正確的
比如C(3,1)=C(3,2)=3
理解其意義,就知道這樣是正確的,C(3,1)表示從3個中選1個,很明顯是=3
C(3,2)表示從3個中選2個,其實就跟選另外那1個的方法數相同,所以等於C(3,1)
有不懂的繼續問撒
 

不論C取何值,等式ac-b-4c=3永遠成立,a`b的值

a等於4 b等於-3

ac-b-4c=3

所以 c(a-4)-b=3

因為要C無論取什麼值都成立,所以

a-4=0

-b=3

所以就有a等於4 b等於-3
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved