1

我对此进行了一些阅读,并且从与我类似的问题来看,看起来我要问的问题可能(很容易)不可能......但我还是想验证一下。也许所有这些问题都来自旧版本的 C#/.NET,而且最近已经实现了。

反正。我的一个类中有一个 switch-case 语句,其目的本质上是采用 int( typeID) 和 string( value) 并检查是否value可以将其解析为typeID. 例如,这是我现在拥有的一部分:

    case 1:
        char charret;
        return char.TryParse(value, out charret);
    case 2:
        Regex re = new Regex(Constants.REGEX_ALPHANUMERIC);
        return re.IsMatch(value);
    case 3:
        bool boolret;
        return bool.TryParse(value, out boolret);
    //And so on...

我想做的是能够避免您在案例 1 和 3 中看到的char/bool实例化。理想情况下,我只想拥有 return 语句。这没什么大不了的(显然),但如果我能把它做得更(甚至更)紧凑,那就太好了。

4

3 回答 3

2

这本来就是不可能的。

作为参数传递的变量out必须与参数类型完全匹配。

于 2012-06-04T19:27:33.360 回答
2

当您使用 out 参数调用函数时,无法避免声明变量。

于 2012-06-04T19:27:51.943 回答
1

这篇文章可能会有所帮助,因为它执行了一个通用的 TryParse(如果可用):

http://toadcode.blogspot.com/2010/10/generic-object-tryparse.html

于 2012-06-04T19:33:24.590 回答