如何避免拳击和丑陋的switch语句

如何避免拳击和丑陋的switch语句

本文介绍了如何避免拳击和丑陋的switch语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 假设我们有以下内容: object [] objs = new object [ 3 ] { 最终问题,42L, 1 }; 我们想对数组中的各个对象执行某些操作,例如: foreach ( object o in objs) { dosomething(o); } 现在 dosomething 只需对象参数所以有拳击正在进行,但我们要求能够根据对象的类型做一些事情,所以我们会做类似的事情: public void dosomething( object obj) { // 单向 if (obj.GetType()== typeof ( string )) { // 字符串特定内容 } // 另一种方式 if (obj long ) { // 长特定内容 } } 嗯,这是丑陋和不高效的,是否有更好的方式使用泛型等?解决方案 Say we have the following :object[] objs = new object[3]{ "the ultimate question", 42L, 1};and we want to do something to the individual objects in the array like :foreach (object o in objs){ dosomething(o);}Now dosomething will only take object parameters so there is boxing going on, but we require to be able to do something based on the type of the object, so we would do something like :public void dosomething(object obj){ // one way if(obj.GetType() == typeof(string)) { // string specific something } // another way if(obj is long) { // long specific something }}Well it's ugly and non performant, is there a better way possible using generics etc.? 解决方案 这篇关于如何避免拳击和丑陋的switch语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
07-31 19:48