为多个TryParse()调用重用相同的变量

时间:2012-06-04 19:23:21

标签: c# code-reuse tryparse

我对此做了一些阅读,并且从类似的到我的问题,看起来我要问的可能不是(轻松)可能......但我想要验证无论如何。也许所有这些问题都来自旧版本的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和案例中看到的char / bool实例化。理想情况下,我想要回复声明。这显然不是什么大不了的事,但如果能让它更紧凑(甚至更紧凑),那就太好了。

3 个答案:

答案 0 :(得分:2)

这本质上是不可能的。

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

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