If语句GetType()c#

| 如果我在提名人中有int number,我将从my1.cs中执行一个方法,如果我在提名人/分母中具有double number,我将从另一个名为my2.cs的类中执行方法。我该如何编码IF
if (number = int) {//; bla bla bla...}
要么
if (number = double) {//; bla bla bla...}
如何编写该if语句:
if (numerator.GetType==int){...}
? 主要的麻烦在于:我从文本框中读取分母和分母,并且使用var dr1 = textBox1.Text.Split(\'/ \'); !拆分,但是我怎么能从字符串中获取类型?     
已邀请:
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 */ }
请注意,所有的ѭ7can都可以解析为
double
,因此您需要先尝试将标记解析为
int
,然后再尝试将其解析为`double。     
if (numerator.GetType() == typeof(int))
{
    ...
}
typeof(MSDN)     
您可以使用typeof-operator:
if(typeof(int) == numerator.GetType())
{
    //put code here
}
    
您应该尝试使用is / as运算符:
if (numerator is int) {...}
    
在C#中使用is运算符。
if(number is int)
    
使用以下内容:
if ( value is int ) { }
您可能还需要看一下通用方法(C#编程指南)     
这应该工作:
if (numerator.GetType() == typeof(int))
{
   // it\'s an int

}

else if (numerator.GetType() == typeof(double))
{
   // it\'s a double
}
不确定为什么要这么做...     
C#7
if (number is int myint) {//; do something with myint} OR

if (number is double mydouble) {//; do something with mydouble}
如果类型匹配,则每种情况都为true。强制转换值将放置在变量中。     

要回复问题请先登录注册