何時使用“out”而不是“ref”
在“out”和“ref”參數之間進行選擇時,除非特別需要“ref”,否則預設選擇是“out”。
Out 與 Ref 的區別
“ref”允許方法修改作為參數傳遞的變量的原始值,而“out”則禁止這種能力。當涉及跨進程或跨機器的數據傳輸時,這種區別變得至關重要,因為編組初始值可能會導致不必要的處理。
適合使用“out”的場景
考慮以下場景:
person.GetBothNames(out a, out b);
假設“person”是一個對象,“GetBothNames”是一個檢索兩個值的方法,則“a”和“b”的初始值與方法的操作無關。在這種情況下,使用“in”或“out”是偏好問題,“out”是推薦的選擇,以消除初始值的無用編組。
適合使用“ref”的場景
另一方面,當修改初始值是方法意圖的一部分時,“ref”是合適的:
bool didModify = validator.SuggestValidName(ref name);
“name”參數通過引用傳遞,允許“validator”方法更改其值並返回“didModify”以指示更改。
簡而言之,在大多數情況下,如果不需要修改初始變量值,“out”是更好的選擇;而當需要進行此類修改時,“ref”則變得必要。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3