c# 静态类的使用场景

 更新时间:2021年01月04日 15:52:25   作者:Prozkb  
这篇文章主要介绍了c# 静态类的使用场景,帮助大家更好的理解和使用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# 静态类的资料请关注脚本之家其它相关文章!

相关文章

  • C#读取XML的三种实现方式

    C#读取XML的三种实现方式

    XML文件是一种常用的文件格式,本篇文章主要介绍了C#读取XML的三种实现方式,主要是XmlDocument、XmlTextReader、Linq to Xml,有兴趣的可以了解一下。
    2017-02-02
  • Unity实现植物识别示例详解

    Unity实现植物识别示例详解

    这篇文章主要介绍了如何通过Unity接入百度AI实现植物识别,接口返回植物的名称,并支持获取识别结果对应的百科信息。感兴趣的可以了解一下
    2022-01-01
  • C#通过重写Panel改变边框颜色与宽度的方法

    C#通过重写Panel改变边框颜色与宽度的方法

    这篇文章主要介绍了C#通过重写Panel改变边框颜色与宽度的方法,涉及C#针对Panel控件的重写与属性设置技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • 基于C#代码实现九宫格算法横竖都等于4

    基于C#代码实现九宫格算法横竖都等于4

    这篇文章主要介绍了基于C#代码实现九宫格算法横竖都等于4的相关资料,需要的朋友可以参考下
    2016-01-01
  • C#开发WPF程序中的弱事件模式

    C#开发WPF程序中的弱事件模式

    这篇文章介绍了C#开发WPF程序中的弱事件模式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C# Word 类库的深入理解

    C# Word 类库的深入理解

    本篇文章是对C#中的Word类库进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C# XML基础入门小结(XML文件内容增删改查清)

    C# XML基础入门小结(XML文件内容增删改查清)

    本文主要介绍了C# XML基础入门小结(XML文件内容增删改查清),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • C#同步网络时间的方法实例详解

    C#同步网络时间的方法实例详解

    这篇文章主要介绍了C#同步网络时间的方法,以实例形式较为详细的分析了C#获取网络时间与同步本机系统时间的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-05-05
  • C#中系统时间和UNIX时间戳互相转换

    C#中系统时间和UNIX时间戳互相转换

    本文主要介绍C#中系统时间和UNIX时间戳相互转换的方法,大家可以直接拿去用,希望有用。
    2016-05-05
  • 基于C#实现串口通信

    基于C#实现串口通信

    这篇文章主要为大家详细介绍了基于C#实现串口通信,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02

最新评论