【发布时间】:2015-08-12 12:27:02
【问题描述】:
我有以下 switch 语句:
switch (SomeType)
{
case SomeType.A:
var data = (Type_1)SomeType.Data;
case SomeType.B:
var data = (Type_2)SomeType.Data;
case SomeType.C:
var data = (Type_3) SomeType.Data;
case SomeType.D:
var data = (Type_4) SomeType.Data;
case SomeType.E:
var data = (Type_5) SomeType.Data;
case SomeType.F:
var data = (Type_6) SomeType.Data;
}
我有两个问题:
一个是switch语句似乎将整个事物视为一个范围,因此我不能多次设置var data,我想我可以克服这个问题,因为这需要包装在一个返回值的方法中,所以我可以做类似return (Type_6) SomeType.Data;的事情。
第二个问题是如何将它包装在返回方法中?据我所知,在 C# 中,该方法必须显式定义返回类型。有什么想法吗?
【问题讨论】:
-
什么是 SomeType?它是否共享一个通用接口?
-
您到底想达到什么目的?到目前为止,这听起来像是一个糟糕的架构决策。
-
您的类型是否具有派生自它们的公共基类或接口?
-
@DavidL
SomeType将是传递给函数的参数 -
@walther 我想把这个开关封装成一个函数并返回转换后的类型,(
var data)因为转换永远不一样,我不知道如何写返回类型函数。
标签: c# switch-statement return return-value