1樓:
因為TryParse函式本身返回的是布林值,而且傳入的第2個引數就是指示是否轉換成功的值。
這個函式多用在判斷中。要說使用函式簽名用out,我想更多的是封裝性吧,畢竟ref需要在外面初始化。
Console
.Write
("Enter your name:"
);string
firstName
=Console
.ReadLine
();Console
.Write
("Enter your age:"
);string
ageText
=Console
.ReadLine
();if
(int
.TryParse
(ageText
,out
intage
))! Your are years old."
,firstName
,age
);Console
.ReadLine
();}
else
2樓:Python與演算法社群
C#.net中Parse和TryParse是2個不同版本,之所以有2個版本,是因為前者丟擲異常,後乙個不丟擲異常,拋異常會影響效能,
微軟為了消除異常影響,特意提出了一種模式:Tester-Doer模式
可以參考
C# 架構中異常 (Except) 設計準則 1
在這個背景下,才有了TryParse這個版本,而它的返回值正是標記行為正常與否,而引數out正是在函式體內才去計算求得的,所以用Out,如果用ref,那麼你在使用前必須給a賦值,這是多餘的。
可以參考ref 和out的區別
C#: in ,out, ref 使用分析
DateTime.Parse 和 DateTime.TryParse
另外乙個例子:
ContainsKey(TKey) <-> containsKey(K),Item[TKey] <-> get(K),還有乙個利用了out引數的額外方法:TryGetValue:
Dictionary(TKey, TValue).TryGetValue Method (TKey, TValue) (System.Collections.Generic)
public bool TryGetValue(
TKey key,
out TValue value
)ParameterskeyType: TKey
The key of the value to get.
valueType: TValue
When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized.
Return ValueType: System.Boolean
trueif the Dictionary contains an element with the specified key; otherwise,false.
漢語拼音ou中的「o」發什麼音呢?
貓嗅狗 我將普通話韻母ou的音標標記為eu,當中的e是乙個中開口的方口音 長方口 是介母音,弱讀,當中的u是小開口的圓口音,是主母音,重讀。貓嗅狗 普通話發音原理 14 復母音 介母音 主母音結構 漢言 ou的單獨發音 首先是弱子音 喉塞 開頭,接著是除阻發介母音e,最後是主母音ou。介音e遠比做為...
我為什麼是我?為什麼?
主角戲 馬克思說過,人是所有社會關係的總和,所以首先,你作為人來說,你只是你周圍所有關係的總和,你的偏執,你的瘋狂,你的愛情,你的孝順,你的所有人生觀,價值觀,世界觀,宇宙觀,形成了你。但是你錯誤的把這些當成了你,其實這些都是人的錯誤認識,心 的本體,也就是能生萬物,能生萬法的這個東西沒有被發現之前...
為什麼是 money is hard to make,而不是 made?
笑得有點兒野 Money is hard to make It is hard to make money To make money is hard. 魚子醬 因為這裡的用法是動詞不定式,掙錢是困難的,在這裡,掙錢的人是主語,錢是賓語,所以謂語用主動形式而非被動,人是主動去掙錢的。 李勇 個人理解...