using System.Text.RegularExpressions;
using System.Diagnostics;
using System.Globalization;
private static Regex regex = new Regex("^-?[0-9]+(.[0-9]+)?$");
public static void Main()
Console.WriteLine($"target: {target}");
Console.WriteLine($"target: {target}");
Console.WriteLine($"target: {target}");
Console.WriteLine($"target: {target}");
Console.WriteLine($"target: {target}");
Console.WriteLine($"target: {target}");
Console.WriteLine($"target: {target}");
Console.WriteLine($"target: {target}");
Console.WriteLine($"target: {target}");
Console.WriteLine($"target: {target}");
private static void Test(Action<string> a, string[] targets, string message) {
Console.WriteLine($"start {message}");
var sw = new Stopwatch();
foreach(var target in targets) {
Console.WriteLine($"end {message}: {sw.ElapsedMilliseconds}ms");
private static void Check1(string str) {
if (double.TryParse(str, out var result)) {
if (int.TryParse(result.ToString(), out var _)) {
private static void Check2(string str) {
if (regex.IsMatch(str)) {
if (int.TryParse(str, out var _)) {
private static void Check3(string str) {
Console.WriteLine(" Default setting");
if (int.TryParse(str, out var result)) {
Console.WriteLine($" int value.: {result}");
Console.WriteLine(" Parse Failed.");
private static void Check4(string str) {
Console.WriteLine(" Use NumberStyles.Number");
if (int.TryParse(str, NumberStyles.Number, NumberFormatInfo.CurrentInfo, out var result)) {
Console.WriteLine($" int value.: {result}");
Console.WriteLine(" Parse Failed.");