Как использовать метод IsNumeric в MonoDevelop с помощью ссылки Microsoft.VisualBasic? - PullRequest
5 голосов
/ 04 октября 2011

То, что я пытаюсь сделать, это проверить, является ли ввод с плавающей точкой числом или нет.Меня просят сделать это с помощью метода IsNumeric ().Проблема в том, что я использую MonoDevelop, и я не могу понять, почему это не работает.Кажется, я добавил ссылку на сборку, которая мне нужна.

Так что с нуля.Как мне это сделать?Нужно ли что-то добавлять в ссылку на сборку VB?И, если это все еще будет работать, когда я попытаюсь работать в школе на VisualStudio?

static void getBookInfo(Book book)
{
        Console.Write("Enter Book Title: ");
        book.Title = Console.ReadLine();
        Console.Write("Enter Author's First Name: ");
        book.AuthorFirstName = Console.ReadLine();
        Console.Write("Enter Author's Last Name: ");
        book.AuthorLastName = Console.ReadLine();
        Console.Write("Enter Book Price: $");
        book.Price = float.Parse(Console.ReadLine());
}

Ссылочный файл с VB выглядит так:

public class VBCodeProvider : CodeDomProvider
{
    // Constructors
    public VBCodeProvider ();
    public VBCodeProvider (IDictionary<string, string> providerOptions);

    // Methods
    public virtual ICodeCompiler CreateCompiler ();
    public virtual ICodeGenerator CreateGenerator ();
    public virtual TypeConverter GetConverter (Type type);
    public virtual void GenerateCodeFromMember (CodeTypeMember member, TextWriter writer, CodeGeneratorOptions options);

    // Properties
    public virtual string FileExtension { get; }
    public virtual LanguageOptions LanguageOptions { get; }
}

С уважениемИ спасибо за помощь.

Еще немного информации.В верхней части моей страницы у меня есть:

using Microsoft.VisualBasic;

Метод IsNumeric () не отображается при попытке его напечатать (обычно это вещи перечислены).

Другое редактирование.Таким образом, я мог бы сделать это таким образом (но мне действительно нужно использовать метод IsNumeric, чтобы я не потерял ни одного очка от домашней работы):

static void getBookInfo(Book book)
{
    bool isNumeric;
    float number;
    string numberInput;

    Console.Write("Enter Book Title: ");
        book.Title = Console.ReadLine();
        Console.Write("Enter Author's First Name: ");
        book.AuthorFirstName = Console.ReadLine();
        Console.Write("Enter Author's Last Name: ");
        book.AuthorLastName = Console.ReadLine();
        Console.Write("Enter Book Price: $");
        numberInput = Console.ReadLine();

    isNumeric = float.TryParse(numberInput, out number);

    if (isNumeric)
        Console.WriteLine(number.ToString());
    else
        Console.WriteLine("not number");
}

Ответы [ 2 ]

1 голос
/ 06 февраля 2012

Если боль при попытке ссылки на сборки Visual Basic слишком велика, вы можете обнаружить, что метод decimal.TryParse () выполняет подходящую аналогичную функциональность с небольшими недостатками.

Пример его использования можетможно найти на http://msdn.microsoft.com/en-us/library/9zbda557.aspx

1 голос
/ 04 октября 2011

Это статический метод в классе «Microsoft.VisualBasic.Information». Даже с этим using вам нужно получить к нему доступ как

Information.IsNumeric (someString)

См. http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.information.isnumeric.aspx

...