代碼說明:
1.講Delegate作為參數,我們可以傳任何一個delegate進來,不必使用實際的如 VOID_DICTIONARY_METHOD作為參數傳遞,這對於通用是一個很好的辦法。
2.TransactionAction方法第二個參數是你要傳遞的參數,即 委托的參數。MSDN:作為參數傳遞給當前委托所表示的方法的對象數組。- 或 - 如果當前委托所表示的方法不需要參數,則為null。
UserInfoAction.cs 不變
public class UserInfoAction:SqlDAL
{
public void Add (Dictionary<string, object> dict)
{
StringBuilder sql = new StringBuilder();
sql.Append("INSERT [UserInfo](");
ExecuteNonQuery(sql);
}
}
Main
static void Main(string[] args)
{
Dictionary<string, object> dict = new Dictionary<string, object>();
UserInfoAction uiAction = new UserInfoAction();
dict.Add ("Username", "abc");
dict.Add("PassWord", "abc");
dict.Add("Email", "[email protected]");
//普通方式執行
//uiAction.Add (dict);
//事務方式執行
uiAction.TransactionAction(new UserInfoAction.VOID_DICTIONARY_METHOD (uiAction.Add), dict);
}