Using system; namespace funcdemo {internal class program {Private Static void main () {// similar to the delegate function func <inputargs, result> func = tsetfunction; console. writeline ("first method:"); console. writeline (func (New inputargs ("zhangqs008", "123456"); console. writeline ("========================================== ======== "); console. writeline ("Method 2:"); callmethod (func, new inputargs ("zhangqs008", "1234567"); // or callmethod (tsetfunction, new inputargs ("zhangqs008", "1234567"); console. read ();} public static result tsetfunction (inputargs input) {result = new result (); result. flag = string. compare ("zhangqs008", input. username, stringcomparison. ordinalignorecase) = 0 & string. compare ("123456", input. password, stringcomparison. ordinalignorecase) = 0; result. MSG = "Current Caller:" + input. username; return result;} public static void callmethod <t> (func <t, result> func, t item) {result = func (item); console. writeline (result. tostring ();} // <summary> // method parameter // </Summary> public class inputargs {public inputargs (string username, string password) {username = username; Password = password;} Public String username {Get; set;} Public String password {Get; Set ;}} /// <summary> /// Method Result /// </Summary> public class result {Public String MSG {Get; set;} public bool flag {Get; set ;} public override string tostring () {return string. format ("flag: {0}, MSG: {1}", flag, MSG );}}}}
Http://blog.csdn.net/a497785609/article/details/8282785
C # func <t, tresult>