如果我在分子中有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"之前.
| 归档时间: |
|
| 查看次数: |
10761 次 |
| 最近记录: |