static string getDelegateName(MethodDefinition method) { string fieldName = method.Name; if (fieldName.StartsWith(".")) { fieldName = fieldName.Substring(1); } string ccFlag = method.IsConstructor ? "_c" : ""; var type = method.DeclaringType; Dictionary <string, StrMethod> nameToCount = new Dictionary <string, StrMethod>(); StrMethod strMethod = null; { foreach (var ator in type.Methods) { if (!nameToCount.TryGetValue(ator.Name, out strMethod)) { strMethod = new StrMethod(ator.Name); nameToCount.Add(ator.Name, strMethod); } strMethod.methods.Add(ator); } strMethod = nameToCount[method.Name]; } string name = ccFlag + "__Hotfix_" + fieldName; if (strMethod.Count == 1) { return(name); } // 是否所有函数的参数个数都不一样 //if (strMethod.isNotSameParam) // return name + "_" + method.Parameters.Count; strMethod.Sorted(); for (int i = 0; i < strMethod.methods.Count; ++i) { if (strMethod.methods[i] == method) { return(name + "_" + i); } } wxb.L.LogErrorFormat("method:{0} not field name!", method.Name); return(""); }
static void Main(string[] args) { StrMethod MakeReverce = new StrMethod(Reverce); string text = "Hello world!"; //text = MakeReverce(text); Console.WriteLine(MakeReverce(text)); MakeReverce = UpperCase; Console.WriteLine(MakeReverce(text)); Console.WriteLine(text); MakeReverce = (string str) => { return(str.Replace('l', 'L')); }; Console.WriteLine(MakeReverce(text)); Str strOb = new Str(); MakeReverce = strOb.ReplaceSpaces; Console.WriteLine(MakeReverce(text)); Console.ReadKey(); }