c# 靜態類的使用場景
判斷這個很簡單,就是從內存的優化方面去考慮.因為靜態和非靜態的不同的地方,就是靜態的從程序一啟動就會一直占用內存,而非靜態的隻在使用後(實例化)後才會占用內存.但是每實例化個一個對象時又會另外占用內存. 舉個例子,比如說一個數據庫的連接字段(STRING).因為要經常使用到它,這時我們可以用STATIC.但是如果這時用非靜態的話那就不合算瞭,因為每次調用到它時,又實例化一次.這樣相比來說占用內存就比較大瞭.不劃算. 像一個登錄後臺的方法,你隻在登陸時候調用一次,就沒有必要做成靜態的瞭.那樣一直駐存在內存中.在大型項目中,你如果都使用靜態的那得要多少內存去支撐呀.嘿嘿 簡單點,就是它經常要被調用時,就用靜態的.相反則用非靜態的.
那也就是說,公共方法就設置為靜態的方法唄。果然是的,看經常用的comm類就是靜態的Static
public class fnComm { public static JObject Post(HttpClient myhttp, string url, JObject json) { HttpContent content = new StringContent(JsonConvert.SerializeObject(json), Encoding.UTF8, "application/json"); var message = Task<HttpResponseMessage>.Run<HttpResponseMessage>(() => { return myhttp.PostAsync(url, content); }); message.Wait(); //接收返回得信息 if (message.Result.IsSuccessStatusCode) { var s = Task.Run(() => { return message.Result.Content.ReadAsStringAsync(); }); s.Wait(); return JObject.Parse(s.Result); } else { throw new Exception("StatusCode:" + message.Result.StatusCode.ToString()); } } public static byte[] ConvertToByteAry(object obj) { var j = JsonConvert.SerializeObject(obj); var ary = System.Text.Encoding.UTF8.GetBytes(j); return ary; } /// <summary> /// datetime轉換為unixtime /// </summary> /// <param name="time"></param> /// <returns></returns> public static int TimeToUnixTime(System.DateTime time) { return (int)(time - new DateTime(1970, 1, 1).ToLocalTime()).TotalSeconds; } public static string GenerateTransId(int i) { string transId = DateTime.Now.ToString("yyyyMMddHHmmss"); int l = i - 14; return transId + CreateRandCode(l); } public static string CreateRandCode(int codeLen) { string codeSerial = "1,2,3,4,5,6,7,a,c,d,e,f,h,i,j,k,m,n,p,r,s,t,A,C,D,E,F,G,H,J,K,M,N,P,Q,R,S,U,V,W,X,Y,Z"; if (codeLen == 0) { codeLen = 16; } string[] arr = codeSerial.Split(','); string code = ""; int randValue = -1; Random rand = new Random(unchecked((int)DateTime.Now.Ticks)); for (int i = 0; i < codeLen; i++) { randValue = rand.Next(0, arr.Length - 1); code += arr[randValue]; } return code; } public static string GetStringFromList(List<string> list) { StringBuilder sb = new StringBuilder(); string strReturn; if (list.Count > 0) { foreach (string item in list) { sb.AppendFormat("'{0}',", item); } strReturn = sb.ToString(0, sb.Length - 1); } else { strReturn = "''"; } return strReturn; } }
以上就是c# 靜態類的使用場景的詳細內容,更多關於c# 靜態類的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- 解析C#拼接Json串的幾種方法
- C#通過JObject解析json對象
- c# Newtonsoft.Json 常用方法總結
- c#添加Newtonsoft.Json包的操作
- c#解析jobject的數據結構