Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If语句GetType()c#_C#_If Statement - Fatal编程技术网

If语句GetType()c#

If语句GetType()c#,c#,if-statement,C#,If Statement,若我在nominator中有int number,我将从my1.cs中执行一个方法,若我在nominator/分母中有double number,我将从另一个名为my2.cs的类中执行方法。如果 if(number=int){//;blablablabla…} 或 if(number=double){//;blablablabla…} 如何对if语句进行编码:if(分子.GetType==int){…} 主要的问题在于:我从textbox读取命名符和分母,var dr1=textBox1.Tex

若我在nominator中有int number,我将从my1.cs中执行一个方法,若我在nominator/分母中有double number,我将从另一个名为my2.cs的类中执行方法。如果

if(number=int){//;blablablabla…}

if(number=double){//;blablablabla…}

如何对if语句进行编码:
if(分子.GetType==int){…}


主要的问题在于:我从textbox读取命名符和分母,var dr1=textBox1.Text.Split('/')!拆分,但如何从字符串中获取类型

if (numerator.GetType() == typeof(int))
{
    ...
}

前者通常更好

编辑: 你说问题是从字符串表示中解析数字。恐怕,这里最好的方法是调用
type.TryParse
,检查给定的字符串是否可以解析为给定类型的数字

例如


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

您应该尝试is/as操作符:

if (numerator is int) {...}

您可以使用typeof运算符:

if (numerator is int) {...}
if(typeof(int) == numerator.GetType())
{
    //put code here
}
使用

这应该起作用:

if (numerator.GetType() == typeof(int))
{
   // it's an int

}

else if (numerator.GetType() == typeof(double))
{
   // it's a double
}
不确定您为什么要这样做…

请使用以下命令:

if ( value is int ) { }
您可能还想看看C#7


如果类型匹配,则每种情况都为true。强制转换值将放置在变量中。

是否查找
if(分子.GetType()==typeof(int))
?如果没有,请添加到您的问题中,因为它没有多大意义。这看起来像是一个问题,函数重载或泛型可能比装箱的数字更好。主要问题在于:我从textbox中读取命名符和分母,var dr1=textBox1.Text.Split(“/”)!拆分,但如何从字符串中获取类型???如果您将数字读取为字符串,是否关心它是否为整数?为什么不总是假设它是双精度的呢?这是我的实验室)我必须从textbox中读取,如果在textbox中键入的是int do method1,否则就使用另一种方法。主要的问题在于:我从textbox中读取命名符和分母,var dr1=textBox1.Text.Split('/')!拆分,但如何从字符串中获取类型???主要问题在于:我从textbox中读取命名符和分母,var dr1=textBox1.Text.split(“/”)!拆分,但如何从字符串中获取类型???为什么不将所有内容都转换为双精度?()如果用户写“1”或“1.0”,这两种方法都会起作用。主要的问题在于:我从textbox中读取命名符和分母,var dr1=textBox1.Text.Split('/')!拆分,但如何从字符串中获取类型???@user707895,发布另一个问题并进行解释
if(number is int)
if (numerator.GetType() == typeof(int))
{
   // it's an int

}

else if (numerator.GetType() == typeof(double))
{
   // it's a double
}
if ( value is int ) { }
if (number is int myint) {//; do something with myint} OR

if (number is double mydouble) {//; do something with mydouble}