文章分類

C# (27) ASP.NET (13) SQL (7) ORACLE (5) JAVA (2) SQLSERVER2008 (2) 大家都在問的事 (2) ACCESS (1) ANDRIOD (1) JQUERY (1) python (1) 雜談 (1)

關於我自己

我的相片
程式初心者 JAVA, ASP.NET, C# ,SQL

2011年9月28日 星期三

【C#】傳值呼叫與傳祉呼叫使用時機

傳祉呼叫寫法 
CallRef(ref a, ref b);
public void CallRef(ref int a, ref int b) {
...
}
 
傳值呼叫寫法 
CallRef( a, b);
 
public void  CallRef( int a,  int b) {
...
}
 
應用面: 
寫法很簡單, 但是時機呢?什麼時候該用傳值或傳祉
 
1.當呼叫的方法是處理原本主程式中的參數時
使用傳值的話,不會改變原本的a,與b的數值, 
 如下列,在呼叫CallRef後還是a=10,b=10
ex:
 
int a =10,b=10;
CallRef( a, b); 
 
public void  CallRef( int a,  int b) 
{
  a=a+b;
  b=b+a; 
}
 








若使用傳祉,則呼叫CallRef後是a=20,b=20
 ex:
 
int a =10,b=10;
CallRef(ref a,ref b);

public void  CallRef(ref int a, ref int b) 
{
  a=a+b;
  b=b+a; }
 
 
2.但是如果你呼叫的方法傳入的參數,和回傳的東西
是兩種不一樣的東西, 傳值傳祉都可以,但傳祉似乎會好一點
 public Datatable  CallRef( string SQL_CMD) { 
...
 DataTable DT=null;
return DT://傳回的為DataTable物件
}
 
string sql_cmd="SELECT * FROM MAIN";


DataTable dt=CallRef(sql_cmd);//傳入的參數為STRING 
 
還有人想到什麼可以補充的嘛

沒有留言:

張貼留言