iT邦幫忙

4

【C#】小知識 #1 : 方法參數使用預設值

c#
暐翰 2018-04-08 00:48:2519413 瀏覽
  • 分享至 

  • xImage
  •  

說明:

方法參數假如有預設值
之後有程式去call method時候可以省略參數

舉例:

public class Test{
	public Test(){
		xxx(1,"");
		xxx(1);
		xxx();
	}

	public static void xxx(int a = 1 ,object b = null){
		
	}
}

第3~6行call method都是呼叫同一個方法
但是參數數量卻是不一定要相同

實戰應用:

像是Dapper套件中就常使用這樣方式
不帶parameters SQL就只要call QueryMultiple(sql)
需要parameters 換成 call QueryMultiple(sql,new {xxx=xxx})
需要timeout時間 換成 call QueryMultiple(sql,new {xxx=xxx},timeout)


優點:

之前寫法,要達到同樣目的
需要從一個方法變成三個方法

public class Test{
	public Test(){
		xxx(1,"");
		xxx(1);
		xxx();
	}
	public static void xxx(){}
	public static void xxx(int a ){}
	public static void xxx(int a ,object b ){}
}

補充:

當你不想按照順序時,可以直接使用 參數名稱:值
也就是具名引數使用方式


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
Luke
iT邦研究生 5 級 ‧ 2018-04-09 11:03:08

具名引數
謝謝暐翰,不知道有此方式具名引數 /images/emoticon/emoticon07.gif
請問您,Java 有方法參數使用預設值?

暐翰 iT邦大師 1 級 ‧ 2018-04-09 11:05:54 檢舉

很遺憾,目前java不支持
只能用多載來間接實現

有人在open jdk提issue
但java 11沒有列入feature

我要留言

立即登入留言