c# 静态类的使用场景
程序员文章站
2022-03-24 09:45:18
判断这个很简单,就是从内存的优化方面去考虑.因为静态和非静态的不同的地方,就是静态的从程序一启动就会一直占用内存,而非静态的只在使用后(实例化)后才会占用内存.但是每实例化个一个对象时又会另外占用内存...
判断这个很简单,就是从内存的优化方面去考虑.因为静态和非静态的不同的地方,就是静态的从程序一启动就会一直占用内存,而非静态的只在使用后(实例化)后才会占用内存.但是每实例化个一个对象时又会另外占用内存. 举个例子,比如说一个数据库的连接字段(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# 静态类的资料请关注其它相关文章!