除了string外的所有基元型別都有兩個將字串轉型為本身的方法:parse和tryparse。
parse方法:如果字串格式不滿足轉換要求,會引發乙個一次異常。
tryparse方法:如果字串格式不滿足轉換要求,會返回false,同時將接收的變數置為初始值。
例:
1public
static
double parse(string
s);2
public
static
bool tryparse(string s, out
double result);
引發異常這個過程會對效能造成損耗
實驗**:
1double
re;2
long
ticks;
34 stopwatch sw =stopwatch.startnew();
5for (int i = 0; i < 1000; i++)611
catch
1215}16
sw.stop();
17 ticks =sw.elapsedticks;
18 console.writeline("
double.parse() 成功, ticks
", ticks);
1920 sw =stopwatch.startnew();
21for (int i = 0; i < 1000; i++)
2227}28
sw.stop();
29 ticks =sw.elapsedticks;
30 console.writeline("
double.tryparse() 成功, ticks
", ticks);
3132 sw =stopwatch.startnew();
33for (int i = 0; i < 1000; i++)
3439
catch
4043}44
sw.stop();
45 ticks =sw.elapsedticks;
46 console.writeline("
double.parse() 失敗, ticks
", ticks);
4748 sw =stopwatch.startnew();
49for (int i = 0; i < 1000; i++)
5055}56
sw.stop();
57 ticks =sw.elapsedticks;
58 console.writeline("
double.tryparse() 失敗, ticks
", ticks);
執行結果:
double.parse() 成功,1393ticks
double.tryparse() 成功,1480
ticks
double.parse() 失敗,72487036
ticks
double.tryparse() 失敗,886 ticks
執行成功,parse和tryparse方法的效率在乙個數量級上;執行失敗;parse方法的執行效率明顯遠低於tryparse方法。
參考:《編寫高質量**改善c#程式的157個建議》陸敏技
建議4 TryParse比Parse好之美
如果注意觀察除string外的所有基元型別,會發現他們都有兩個將字串轉型為本身的方法 parse和tryparse。以型別double為例,這兩個方法最簡單的原型為 1 public static double parse string s 2 public static bool tryparse...
parse 和 eval 的區別
一般在js中使用parse將string轉json,相對來說比較安全 var a var b var c var d var e var f var g parse 物件和陣列 屬性名稱必須用雙引號包裹 最後乙個屬性後面不能有逗號。數值 前導0不能使用 在 json.stringify 中將會被忽略...
Parse與TryParse的區別
convert.toint32 int.parse int32.parse int.tryparse int 四者都可以解釋為將型別轉換為 int,那它們的區別是什麼呢?convert.toint32 與 int.parse 較為類似,實際上 convert.toint32 內部呼叫了 int.pa...