c# 静态类的使用场景
判断这个很简单,就是从内存的优化方面去考虑.因为静态和非静态的不同的地方,就是静态的从程序一启动就会一直占用内存,而非静态的只在使用后(实例化)后才会占用内存.但是每实例化个一个对象时又会另外占用内存.举个例子,比如说一个数据库的连接字段(STRING).因为要经常使用到它,这时我们可以用STATIC.但是如果这时用非静态的话那就不合算了,因为每次调用到它时,又实例化一次.这样相比来说占用内存就比较大了.不划算. 像一个登录后台的方法,你只在登陆时候调用一次,就没有必要做成静态的了.那样一直驻存在内存中.在大型项目中,你如果都使用静态的那得要多少内存去支撑呀.嘿嘿 简单点,就是它经常要被调用时,就用静态的.相反则用非静态的.
那也就是说,公共方法就设置为静态的方法呗。果然是的,看经常用的comm类就是静态的Static
publicclassfnComm { publicstaticJObjectPost(HttpClientmyhttp,stringurl,JObjectjson) { HttpContentcontent=newStringContent(JsonConvert.SerializeObject(json),Encoding.UTF8,"application/json"); varmessage=Task.Run (()=> { returnmyhttp.PostAsync(url,content); }); message.Wait(); //接收返回得信息 if(message.Result.IsSuccessStatusCode) { vars=Task.Run(()=> { returnmessage.Result.Content.ReadAsStringAsync(); }); s.Wait(); returnJObject.Parse(s.Result); } else { thrownewException("StatusCode:"+message.Result.StatusCode.ToString()); } } publicstaticbyte[]ConvertToByteAry(objectobj) { varj=JsonConvert.SerializeObject(obj); varary=System.Text.Encoding.UTF8.GetBytes(j); returnary; } /// ///datetime转换为unixtime /// ////// publicstaticintTimeToUnixTime(System.DateTimetime) { return(int)(time-newDateTime(1970,1,1).ToLocalTime()).TotalSeconds; } publicstaticstringGenerateTransId(inti) { stringtransId=DateTime.Now.ToString("yyyyMMddHHmmss"); intl=i-14; returntransId+CreateRandCode(l); } publicstaticstringCreateRandCode(intcodeLen) { stringcodeSerial="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(','); stringcode=""; intrandValue=-1; Randomrand=newRandom(unchecked((int)DateTime.Now.Ticks)); for(inti=0;i list) { StringBuildersb=newStringBuilder(); stringstrReturn; if(list.Count>0) { foreach(stringiteminlist) { sb.AppendFormat("'{0}',",item); } strReturn=sb.ToString(0,sb.Length-1); } else { strReturn="''"; } returnstrReturn; } }
以上就是c#静态类的使用场景的详细内容,更多关于c#静态类的资料请关注毛票票其它相关文章!