首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >If语句GetType() c#

If语句GetType() c#
EN

Stack Overflow用户
提问于 2011-05-26 14:38:03
回答 8查看 13.7K关注 0票数 7

如果我在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('/');!拆分,但是如何从字符串中获取类型?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-05-26 14:41:31

代码语言:javascript
运行
复制
if (numerator is int) { ... }

代码语言:javascript
运行
复制
if (numerator.GetType() == typeof(int)) {...}

前者通常更好。

编辑:Н我们说问题出在从字符串表示中解析数字。我担心,这里最好的方法是调用type.TryParse并检查给定的字符串是否可以被解析为给定类型的数量。

例如。

代码语言:javascript
运行
复制
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。

票数 12
EN

Stack Overflow用户

发布于 2011-05-26 14:41:14

代码语言:javascript
运行
复制
if (numerator.GetType() == typeof(int))
{
    ...
}

typeof (MSDN)

票数 5
EN

Stack Overflow用户

发布于 2011-05-26 14:41:49

您可以使用typeof-运算符:

代码语言:javascript
运行
复制
if(typeof(int) == numerator.GetType())
{
    //put code here
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6134649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档