比如我有個方法(如下),回傳值我設為T 泛形,但發現有一個問題,每次用這方法都要加個<型別名>括號,感謝太煩鎖了,所以突發其想,有沒有這種語法,如果不加<>就默認一種指定好的類形呢,不知C# 有沒有這種語法,請高人指點,非常感謝!
public static T OutErr<T>(int returnCode = -1, string returnMsg = "")
{
JObject j = new JObject();
JsonDo.outReturnHead(j, returnCode, returnMsg);
string a = typeof(T).ToString();
if(a == "System.String")
return (T)(object)j.ToString();
else
return (T)(object)j;
}
我想能不能這樣,給T指定一個默認的型別,如這樣:
public static T OutErr<T=string>(int returnCode = -1, string returnMsg = "")
{
JObject j = new JObject();
JsonDo.outReturnHead(j, returnCode, returnMsg);
string a = typeof(T).ToString();
if(a == "System.String")
return (T)(object)j.ToString();
else
return (T)(object)j;
}
uj5u.com熱心網友回復:
寫個方法包一下
uj5u.com熱心網友回復:
應該沒有直接支持的語法。uj5u.com熱心網友回復:
直接 多載就完事了
public static string OutErr(int returnCode = -1, string returnMsg = "")
{
return default;
}
uj5u.com熱心網友回復:
不知道 JsonDo.outReturnHead(j, returnCode, returnMsg); 這個是干啥的試試這樣寫
public static object OutErr(int returnCode = -1, string returnMsg = "")
{
JObject j = new JObject();
JsonDo.outReturnHead(j, returnCode, returnMsg);
if (j.GetType() == typeof(string))
return j.ToString();
else
return j;
}
uj5u.com熱心網友回復:
嗯,目前是這樣搞了,一直只有string的輸出,后面發現有時也會用到JObject型別輸出,所以才想到要大一統的方法,提高代碼利用率!
uj5u.com熱心網友回復:
我想了想,沒必要。你內部邏輯也變更了。
就直接多載算了
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/284290.html
標籤:C#
下一篇:C# 加載自定義字體的問題
