如果我在nominator中有int number,我将从my1.cs中做一个方法,如果我在nominator/denominator中有两个number,我将从另一个名为my2.cs的类中做方法。我该如何编码如果,
if (number = int) {//; bla bla bla...} OR
if (number = double) {//; bla bla bla...}
如何编写这个if-statement:if (numerator.GetType==int){...}?
主要的问题在于:我从文本框中读取了命名符和分母,其中变量dr1 = textBox1.Text.Split('/');!拆分,但是如何从字符串中获取类型?
发布于 2011-05-26 14:41:31
if (numerator is int) { ... }或
if (numerator.GetType() == typeof(int)) {...}前者通常更好。
编辑:Н我们说问题出在从字符串表示中解析数字。我担心,这里最好的方法是调用type.TryParse并检查给定的字符串是否可以被解析为给定类型的数量。
例如。
var tokens = line.Split('/');
double dArg1,dArg2; int iArg1, iArg2;
if (int.TryParse(tokens[0], out iArg1) 
    && int.TryParse(tokens[1], out iArg2)){
    return iArg1/iArg2;
} else if (double.TryParse(tokens[0], out dArg1) 
           && double.TryParse(tokens[1], out dArg2)){
    return dArg1/dArg2;
} else { /* handle error */ }请注意,所有的ints都可以解析为doubles,因此您需要先尝试将token解析为int,然后再尝试将其解析为` `double。
发布于 2011-05-26 14:41:14
if (numerator.GetType() == typeof(int))
{
    ...
}typeof (MSDN)
发布于 2011-05-26 14:41:49
您可以使用typeof-运算符:
if(typeof(int) == numerator.GetType())
{
    //put code here
}https://stackoverflow.com/questions/6134649
复制相似问题