Це модифікована версія рішення, запропонована містером Сііром. Я вважаю, що додавання методу розширення є найкращим рішенням для повторного використання та простоти в методі виклику.
public static bool IsNumeric(this String s)
{
try { double.Parse(s); return true; }
catch (Exception) { return false; }
}
Я змінив тіло методу, щоб він розмістився у двох рядках, і видалив непотрібну реалізацію .ToString (). Для тих, хто не знайомий з методами розширення, ось як реалізувати:
Створіть файл класу під назвою ExtensionMethods . Вставте цей код:
using System;
using System.Collections.Generic;
using System.Text;
namespace YourNameSpaceHere
{
public static class ExtensionMethods
{
public static bool IsNumeric(this String s)
{
try { double.Parse(s); return true; }
catch (Exception) { return false; }
}
}
}
Замінити YourNameSpaceHere з фактичної NAMESPACE. Зберегти зміни. Тепер ви можете використовувати метод розширення в будь-якому місці вашого додатка:
bool validInput = stringVariable.IsNumeric();
Примітка: цей метод поверне true для цілих чисел і десяткових знаків, але поверне помилковим, якщо рядок містить кому. Якщо ви хочете прийняти введення комами або символами на зразок "$", я б запропонував застосувати метод для видалення цих символів, а потім перевірити, чи є IsNumeric.