多种方法求最大值(委托方法,重载)

Posted xiaobing1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多种方法求最大值(委托方法,重载)相关的知识,希望对你有一定的参考价值。

  1 namespace ConsoleAppLearningCeshi
  2 
  3     /// <summary>
  4     /// 不同打招呼
  5     /// </summary>
  6     /// <param name="name"></param>
  7     public delegate int deleMaxCompara<T>(T one, T two);//泛型委托
  8     public delegate int deleMaxCompara(object one, object two);
  9     class Program
 10     
 11         static void Main(string[] args)
 12         
 13 
 14         
 15       
 16         #region 泛型委托终极版
 17         //int[] intarray =  1,33,11,34,54,2,45,55;
 18         //   string[] strarray =  "adfasdf","adfasdfasdfas","afsdfasdfasdfasddfas","fnvncvncvbn";
 19         //   int intmax= MaxCompara<int>(intarray,comparaIntOrStr);
 20         //   string strmax = MaxCompara<string>(strarray, comparaIntOrStr);
 21         //   Console.WriteLine("最大int值"+intmax);
 22         //   Console.WriteLine("最长string值"+strmax);
 23         //   Console.ReadKey();
 24         public static T MaxCompara<T>(T[] obj, deleMaxCompara<T> delemaxcompara)
 25         
 26             T maxobj = obj[0];//初始化初值
 27             for (int i = 0; i < obj.Length; i++)
 28             
 29                 if ((int)(delemaxcompara(maxobj, obj[i])) < 0)
 30                 
 31                     maxobj = obj[i];
 32                 
 33             
 34             return maxobj;
 35         
 36         public static int comparaIntOrStr(int one, int two)
 37         
 38             return one - two;
 39         
 40         //委托指向string的函数
 41         public static int comparaIntOrStr(string one, string two)
 42         
 43             return one.ToString().Length - two.ToString().Length;
 44         
 45 
 46         #endregion
 47         #region 普通委托方法实现
 48         //object[] intarray =  14,37,32,32,11;
 49         //  object[] strarray =  "ssssss","aaaaasdsd","adadadadadad","asdafsgsvsfgfdhfgkgkk";
 50         //  int intmax= (int)MaxCompara(intarray, comparaOneInt);
 51         //  string strmax = MaxCompara(strarray, comparaOneStr).ToString();
 52         //  Console.WriteLine("int:"+intmax);
 53         //  Console.WriteLine("string.length:"+strmax);
 54         //  Console.ReadKey();
 55         public static object MaxCompara(object[] obj, deleMaxCompara delemaxcompara)
 56         
 57             object maxobj = obj[0];//初始化初值
 58             for (int i = 0; i < obj.Length; i++)
 59             
 60                 if ((int)(delemaxcompara(maxobj, obj[i])) < 0)
 61                 
 62                     maxobj = obj[i];
 63                 
 64             
 65             return maxobj;
 66         
 67         //委托指向int的函数
 68         public static int comparaOneInt(int one, int two)
 69         
 70             return (one) - two;
 71         
 72         public static int comparaOneInt(string one, string two)
 73         
 74             return one.Length - two.Length;
 75         
 76         //委托指向string的函数
 77         public static int comparaOneStr2(object one, object two)
 78         
 79             return one.ToString().Length - two.ToString().Length;
 80         
 81         #endregion
 82         #region 重载的方法
 83 
 84         //object str = "dfdsaf";
 85         //   int[] intarray =  1,44,55,67,33,6,7;
 86         //   string[] strarray =  "ddfddfd", "dsfasfasfd", "sdfasdfsadfasfasf", "sdfasfasfasdfasfsafasfasdfas" ;
 87         //   int maxint;
 88         //    bool maxinbool=int.TryParse( GetMax(intarray).ToString(),out maxint);
 89         //    string maxstr = GetMax(strarray).ToString();
 90         //    if (maxinbool==true)
 91         //    
 92         //        Console.WriteLine(maxint);
 93 
 94         //    
 95         //    Console.WriteLine(maxstr);
 96         //    Console.ReadKey();
 97         public static object GetMax(int[] intarray)
 98         
 99             int intmax = intarray[0];//赋初值
100             //循环遍历获得最大值
101             for (int i = 0; i < intarray.Length; i++)
102             
103                 if (intmax < intarray[i])
104                 
105                     intmax = intarray[i];
106                 
107 
108             
109             return intmax;
110 
111         
112         public static object GetMax(string[] strarray)
113         
114             string strmax = strarray[0];
115             for (int i = 0; i < strarray.Length; i++)
116             
117                 if (strmax.Length < strarray[i].Length)
118                 
119                     strmax = strarray[i];
120 
121                 
122 
123             
124             return strmax;
125         
126         #endregion
127         #region 普通方法实现方法
128         //int[] intarray =  1, 23, 4, 55, 57, 622 ;
129         //  string[] strarray =  "xiaobing", "dddddd", "sssssssssss", "ddddddddd", "sssssssssss", "eeeeeeeeee", "gggggggggggggggggggg" ;
130         //  int maxint = GetIntMax(intarray);
131         //  string maxstr = GetStringMax(strarray);
132         //  Console.WriteLine("最大值int:" + maxint);
133         //  Console.WriteLine("最小值string:" + maxstr);
134         //  Console.ReadKey();
135         /// <summary>
136         /// 获得int最大值
137         /// </summary>
138         /// <param name="intarray"></param>
139         /// <returns></returns>
140         public static object GetIntMax(int[] intarray)
141         
142             int intmax = intarray[0];//赋初值
143             //循环遍历获得最大值
144             for (int i = 0; i < intarray.Length; i++)
145             
146                 if (intmax < intarray[i])
147                 
148                     intmax = intarray[i];
149                 
150             
151             return intmax;
152 
153         
154         /// <summary>
155         /// 获得字符串最大值
156         /// </summary>
157         /// <param name="strarray"></param>
158         /// <returns></returns>
159         public static object GetStringMax(string[] strarray)
160         
161             string strmax = strarray[0];
162             for (int i = 0; i < strarray.Length; i++)
163             
164                 if (strmax.Length < strarray[i].Length)
165                 
166                     strmax = strarray[i];
167 
168                 
169 
170             
171             return strmax;
172         
173         #endregion
174     
175 
176 
177 

 

以上是关于多种方法求最大值(委托方法,重载)的主要内容,如果未能解决你的问题,请参考以下文章

至今最大之敌:委托和事件(重中之重)

什么是最大公约数

方法的重载

java中的方法重载

用Python脚本编写1到100的整数和。

数组的多种用法