标签:enums java c design-patterns
我的任务是将一些Java代码转换为C#,并遇到以下枚举(我不得不对此进行概括,因为代码是专有的,很抱歉).该代码的一般目的是将“非基本单位”转换为“基本单位”(例如,从千米到毫米或任何其他单位.它们有大量的转换).我唯一更改的是变量名.模式与代码中的代码完全一样.
public enum ThisIsAnEnum implements someInterface
{
typeKilom( MetricType.kilometer ),
typeMillm( MetricType.millimeter );
public double convertSomething(double dbl1, double dbl2)
{
// do stuff
return a double
}
}
然后在代码中按如下所示调用它:
public static void main( String[] args )
{
ThisIsAnEnum.typeKilom.convertSomething(aDouble, bDouble);
}
我有几个问题:
>枚举的这种用法在Java中是一种好习惯吗?
>如果是或否,我应该采用哪种C#方法?你可以做类似的事情吗?即使可以,我也不确定这种方法是否正确.
我不是要有人帮我转换这个……只是这是否是一种好方法,并且(如果这样)我应该尝试在C#中做同样的事情.如果不是,那么应该采取什么方法?
解决方法:
java枚举的使用是一个主观的问题,我没有足够的能力回答.我可以说您可以使用扩展方法解决C#问题.我不确定该界面的相关性,但是根据您所显示的内容,您可以像这样重现它.
void Main() {
ThisIsAnEnum.typeKilom.ConvertSomething(1, 2);
}
public enum ThisIsAnEnum {
typeKilom,
typeMillm,
}
public static class ThisIsAnEnumExtensions {
// extension method
public static double ConvertSomething(this ThisIsAnEnum @this, double dbl1, double dbl2) {
return dbl1 + dbl2; // do stuff
}
}
标签:enums,java,c,design-patterns 来源: https://codeday.me/bug/20191120/2042041.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。