if语句GetType()c#

use*_*895 4 c# if-statement

如果我在分子中有int号,我将从my1.cs做一个方法,如果我在分母/分母中有双号,我将从另一个名为my2.cs的类中做方法.我如何编码IF,

if (number = int) {//; bla bla bla...} 要么

if (number = double) {//; bla bla bla...}

如何编写if语句:if (numerator.GetType==int){...}

主要的麻烦在于:我从文本框中读取了nominator和denominator,其中var dr1 = textBox1.Text.Split('/'); !拆分,但我怎么能从字符串gettype ???

eld*_*rge 10

if (numerator is int) { ... }
Run Code Online (Sandbox Code Playgroud)

要么

if (numerator.GetType() == typeof(int)) {...}
Run Code Online (Sandbox Code Playgroud)

前者通常更好.

编辑:Нou说问题是从字符串表示解析数字.我担心,这里最好的方法是调用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 */ }
Run Code Online (Sandbox Code Playgroud)

请注意,所有ints都可以解析为doubles,因此您需要尝试解析令牌,因为int在尝试将其解析为"double"之前.


bni*_*dyc 5

if (numerator.GetType() == typeof(int))
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

typeof(MSDN)