cxi静態類の使用シーン
これを判断するのは簡単です。メモリの最適化の面から考えます。静的と非静的の違いは、プログラムの起動時から静的にメモリを使っています。静的ではなく、使用後(実用化)だけメモリを使っています。しかし、対象となる時又は別にメモリを使っています。例を挙げます。例えば、データベースの接続フィールド(STRING)です。それを頻繁に使うために、STATICを使ってもいいです。しかし、この場合は非静的であれば、採算が合わないです。呼出するたびに、実用化されます。これに比べてメモリの占有が大きくなります。お得ではないです。 一つのログインバックグラウンドの方法のように、ログイン時に一回だけ呼び出しても、静的にする必要はありません。メモリにずっと存在しています。大型プロジェクトの中で、静的なメモリを使ったら、どれぐらいのメモリが必要ですか? 簡単に言えば、よく呼び出される時は静的なものを使います。反対に静的ではないものを使います。
つまり、公共の方法は静的な方法にしましょう。やはり、よく使うcomp類は静的なStaticです。
つまり、公共の方法は静的な方法にしましょう。やはり、よく使うcomp類は静的な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;
}
}
以上はcxi静態類の使用シーンの詳細です。cxi静態類に関する資料は他の関連記事に注目してください。