Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.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
C# 使用默认值参数将字符串转换为int的C函数_C#_Type Conversion - Fatal编程技术网

C# 使用默认值参数将字符串转换为int的C函数

C# 使用默认值参数将字符串转换为int的C函数,c#,type-conversion,C#,Type Conversion,所以我希望在StackOverflow上找到Delphi的StrToIntDef函数的最终等价物,但我不能 实施以下措施 public static int StrToIntDef(string s, int def) { } 正则数 此方法使用了一些初学者不太可能知道的更高级的C功能,它们是: 在默认值前面添加@,这是为了防止编译错误,因为它是C关键字。 将参数number作为out传入,这意味着该number将在函数中更新并返回,尽管它是值类型。 不同的数字样式 有一个可用于解析不同样式

所以我希望在StackOverflow上找到Delphi的StrToIntDef函数的最终等价物,但我不能

实施以下措施

public static int StrToIntDef(string s, int def)
{

}
正则数 此方法使用了一些初学者不太可能知道的更高级的C功能,它们是:

在默认值前面添加@,这是为了防止编译错误,因为它是C关键字。 将参数number作为out传入,这意味着该number将在函数中更新并返回,尽管它是值类型。 不同的数字样式 有一个可用于解析不同样式的数字的:

public static bool TryParse(
    string s,
    NumberStyles style,
    IFormatProvider provider,
    out int result
)
以下是NumberStyles列表,可与此重载结合使用,以解析货币或十六进制等格式异常的数字

没有一个 AllowReadingWhite AllowTrailingWhite 允许阅读符号 允许轨道信号 AllowParenthesis AllowDecimalPoint 允许沙子 AllowExponent AllowCurrencySymbol AllowHexSpecifier 整数 十六进制数 数字 浮动 通货 任何 例如,传递十六进制数:

string hex = "AB";
int hexInt = int.Parse(hex, NumberStyles.HexNumber);
或删除括号和空格:

string number = "  (2)  ";
int castedNumber = int.Parse(num, NumberStyles.AllowParentheses |                        
    NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite);
更多关于他们的阅读

工具书类 您可以发布一个TryParse:

或者您可以直接进行转换:

int val = Convert.ToInt32("1");
但简而言之,您不需要自己的功能。当然,除非在不转换时需要指定非0的默认值。如果是这样,那么您将在方法中利用TryParse,如果它不起作用,则返回传入的默认值。

试试这个

int outputInteger;
int.TryParse(inputString, out outputInteger);

正如我所看到的,这个函数不仅仅是解析..TryParse for Compact Framework:四个人提供这个问题的答案没有问题,答案之间有27票。对我来说,这是一个真正的问题。把这个问题作为一个展示你知识的机会,做得很好
int val;
var success = Int.TryParse("1", out val);
int val = Convert.ToInt32("1");
int outputInteger;
int.TryParse(inputString, out outputInteger);