C#使用Func
using System; namespace Bank { public class Pay { public string Send<T, T2>(Func<T, Bank.User, string> funcDo, T context, Bank.User model, Func<string, string> funcLog, Func<string, string> funcDoOther) { string result = string.Empty; try { int x = 0; model.Id = "99"; model.Name = "戴新清"; model.Pwd = "888888"; result = funcDo(context, model); x = x / x; } catch (Exception ex) { result = "错误"; funcLog(ex.ToString()); } finally { funcDoOther("总计"); } return result; } } }
using System; namespace Bank { public class User { public string Id { get; set; } public string Name { get; set; } public string Pwd { get; set; } public static string Money = "999999999.00"; } }
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Bank.Pay pay = new Bank.Pay(); Bank.User model = new Bank.User(); string result = pay.Send<System.Web.HttpContext, Bank.User>(TestMethod, Context, model, Log, DoOther); Response.Write(result); Response.End(); } public string TestMethod(System.Web.HttpContext context, Bank.User model) { context.Response.Clear(); context.Response.Write("<br />Id:" + model.Id + ",Name:" + model.Name + ",Pwd:" + model.Pwd + ",Money:" + Bank.User.Money); return "我是戴新清"; } public string Log(string ex) { Response.Write("<br/>"+ex); return "0"; } public string DoOther(string ex) { Response.Write("<br/>write"); return "6"; } }