C#中命名參數(shù)和可選參數(shù)
一、簡介
設(shè)計方法的參數(shù)是,可以將部分參數(shù)和全部參數(shù)分配默認(rèn)值,然后調(diào)用這些方法的時候可以選擇不提供部分實參,使用參數(shù)定義的默認(rèn)值,另外,還可以在調(diào)用方法的時候通過指定參數(shù)名稱來傳遞實參。
二、代碼案例
class Program
{
private static int s = 0;
private static int s_n = 0;
private static void Mothed(int x = 9, string s = "A", DateTime dt = default(DateTime), Guid guid = new Guid())
{
Console.WriteLine("x={0},s={1},dt={2},guid={3}", x, s, dt, guid);
}
static void Main(string[] args)
{
Mothed();//等同于Mothed(9,"A",default(Datetime),new Guid())
Mothed(8, "X");//等同于Mothed(8,"X",default(Datetime),new Guid())
Mothed(5, guid: Guid.NewGuid(), dt: DateTime.Now);//等同于Mothed(5,"A",DateTime.Now,Guid.NewGuid())
Mothed(s_n++, s_n++.ToString());//等同于Mothed(0,"1",default(Datetime),new Guid());
Mothed(s: (s_n++).ToString(), x: s_n++);//等同于一下兩行代碼,注意此處的參數(shù)順序無關(guān),和形參的名稱對應(yīng)
//string t1="2";
//int32 t2=3;
//Mothed(t2,t1,default(Datetime),new Guid())
}
}向方法傳遞實參時,編譯器從左到右的順序?qū)崊⑦M行求值。在對Mothed的第四個調(diào)用中s_n的當(dāng)前默認(rèn)值是0,先遞增然后等于1轉(zhuǎn)為string傳遞給s,然后繼續(xù)遞增到2(s_n++先使用后遞增)傳給x。
三、總結(jié)
1.實參可按照任意順序傳遞,但命名實參必須且只能出現(xiàn)在實參列表尾部,如上述代碼第三種調(diào)用方式。
2.可以按照名稱將實參傳遞給沒有默認(rèn)值的參數(shù)。但所有必須的實參都必須傳遞(無論按照位置還是按照名稱),編譯器才能編譯代碼。
3.C#不允許省略逗號之間的實參,比如M(1,,DateTime.New).因為這樣會造成可讀性的影響,程序員將被迫去讀 逗號,對于沒有默認(rèn)值的參數(shù),如果想省略它們的實參,以傳參數(shù)名的方式傳遞實參即可。
到此這篇關(guān)于C#中命名參數(shù)和可選參數(shù)的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#獲取某路徑文件夾中全部圖片或其它指定格式的文件名的實例方法
在本篇文章里小編給大家整理的是關(guān)于C#獲取某路徑文件夾中全部圖片或其它指定格式的文件名的實例方法,需要的朋友們參考下。2019-10-10
C#結(jié)合數(shù)據(jù)庫實現(xiàn)驗證識別ID卡內(nèi)容的方法
這篇文章主要介紹了C#結(jié)合數(shù)據(jù)庫實現(xiàn)驗證識別ID卡內(nèi)容的方法,非常實用的功能,需要的朋友可以參考下2014-07-07
在.NET框架使用C#實現(xiàn)PDF文件轉(zhuǎn)為HTML格式的步驟
HTML作為一種開放標(biāo)準(zhǔn)的網(wǎng)頁標(biāo)記語言,具有跨平臺、易于瀏覽和搜索引擎友好的特性,通過將PDF文件轉(zhuǎn)換為HTML格式,我們可以更方便地在瀏覽器中展示PDF文檔內(nèi)容,本文將介紹如何在.NET框架使用C#將PDF文件轉(zhuǎn)換為HTML格式,需要的朋友可以參考下2025-01-01
C#實現(xiàn)ComboBox控件顯示出多個數(shù)據(jù)源屬性的方法
這篇文章主要介紹了C#實現(xiàn)ComboBox控件顯示出多個數(shù)據(jù)源屬性的方法,實例分析了ComboBox控件的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-09-09
解決C#運行程序修改數(shù)據(jù)后數(shù)據(jù)表不做更新的問題
近日,在使用C#連接數(shù)據(jù)庫的時候,對數(shù)據(jù)庫中的表做更新后,在當(dāng)前啟動項目中去顯示表數(shù)據(jù)時雖然會發(fā)生一個更新,但是在結(jié)束程序運行后再去觀察數(shù)據(jù)表中的記錄時發(fā)現(xiàn)并沒有發(fā)生一個變化,所以本文給大家解決一下這個問題,需要的朋友可以參考下2023-08-08

