《CLR via C 》讀書筆記 09 引數

2021-08-01 20:49:12 字數 485 閱讀 1092

如果提取的乙個方法,目的是「傳入乙個值,然後加工計算後返回」,這是乙個常見的行為;

傳入的值如果是「值型別」,那是建立的副本,因為所以需要返回的時候再次賦值;

使用「out」修飾形參,這樣傳入的是該值的位址,避免建立副本,返回

開發中,會遇到給乙個方法傳的引數大於7個,雖然這樣寫的次數少,但我幹過;

引數多,首先帶來的是:

① vs中一行已經不夠可見了,需要滾動條了;

② 記憶力捉襟見肘了,寫**的時候肯定要有啥,是啥;

③ 不好理解,尤其是別人分享或者再次review的時候;

④ 不好review;

⑤ 從第五章我們知道,在**執行過程中,方法的執行會將引數壓棧,引數多,壓的多,畢竟是個負擔;

ps:在我現在所在的開發組中規範是引數的個數<=5

《CLR via C 》讀書筆記 之 引數

2013 02 27 預設情況下,clr假定所有方法引數都是傳值的。當傳遞引用型別的物件時,也預設是傳值的,只不過這個值是引用 指標 本身。clr允許以傳引用的方式傳遞引數。在c 中,用關鍵字out或ref來告訴編譯器。編譯器將傳遞引數的位址,而不是傳遞引數本身。從clr角度看,out和ref完全一...

CLR via C 讀書筆記1 9

與非託管 的互操作 clr 提供3種與非託管 的互動方案 託管 通過使用 p invoke 機制 來呼叫dll檔案中的非託管函式 許多 fcl 中定義的型別內部都有呼叫到 kernel32.dll,user32.dll 等等檔案中的函式。同時許多程式語言會提供託管 呼叫非託管 的簡便途徑,比如 c ...

CLR via C 讀書筆記2 2

把型別編譯成乙個模組 先假設有這麼乙個簡單的程式 public sealed class program 該程式定義乙個名為 program 的型別,它擁有乙個公有靜態 public,static 方法 main,該方法參照 system.console。把源 存為 program.cs 執行以下命...