下面就簡單的介紹一下.NET的一些常用參數用法,如有不足還望指正,也歡迎大家在下面留言討論,分享自己的見解。
一.DotNet參數概述:
.NET中參數(形式參數)變量是方法或索引器聲明的一部分,而實參是調用方法或索引器時使用的表達式。
在CLR中,默認的情況下所有的方法參數都是傳值的。在傳遞引用類型的對象時,對一個對象的引用會傳遞給方法。這里的船引用本身是以傳值的方式傳給方法的。這也意味著方法能夠修改對象,而調用者能看到這些修改。對于值類型的實例,傳給方法的實例的一個副本。意味著方法將獲得它專用的一個值類型實例副本,調用者中的實例不受影響。
在CLR中允許以傳引用而非傳值的方式傳遞參數,在C#中使用out和ref來實現傳遞引用的方式傳值。在C#中使用out和ref來實現傳遞引用的方式傳值,這兩個關鍵字告訴編譯器生成元數據來指明該參數是傳引用的,編譯器將生成代碼來傳遞參數的地址,而不是傳遞參數本身。為值類型使用out和ref,效果等同于以傳值的方式傳遞引用類型。
常用的參數主要有基本類型參數,泛型參數,以及<in T>和<out T>,dynamic等等。例如<in T>和<out T>,在CLR中支持泛型類型的可變性,C#在4.0時獲得了生命泛型遍體所必須的語法,并且現在編譯器也能夠知道接口和委托可能的轉換。可變性是以一種類型安全的方式,講一個對象作為另一個對象來使用。可變性應用于泛型接口和泛型委托的類型參數中。協變形用于向調用者返回某項操作的值;逆變性是指調用者想API傳入值;不變性是相對于協變性和逆變性,是指什么也不會發生。對于這方面的知識非常的豐富,有興趣的可以自行了解,這里就不做詳細的介紹了。dynamic類型,C#是一門靜態類型的語言,在某些情況下,C#編譯器要尋找特定的名稱而不是接口。dynamic可以在編譯時做任何事,到執行時再由框架進行處理。有關動態類型的介紹也不做更深入的介紹。
在.NET中參數的使用方法主要為可選參數、命名參數、可變數量參數等等。本文下面也是主要介紹這三種參數的使用方法。
二.DotNet參數用法:
以下是主要介紹三種參數的用法:可選參數;命名實參;傳遞可變數量的參數。
1.可選參數:
(1).基本用法:
如果某個操作需要多個值,而有些值在每次調用的時候又往往是相同的,這時通常可以使用可選參數。在C#以前實現可變參數的功能,往往聲明一個包含所有可能參數的方法,其他方法調用這個方法,并傳遞恰當的默認值。
新聞熱點
疑難解答
圖片精選