C # Где поставить общие методы? - PullRequest
2 голосов
/ 28 мая 2009

В моем приложении у меня есть метод, чтобы проверить, является ли переменная числом или нет. Этот метод вызывается более одного раза в моем коде. Метод вызывается из кодовых страниц. Как и этот метод, у меня есть больше методов, которые я не могу разместить в одном классе (например, Персонал). Где я должен поставить такие методы?

Ответы [ 4 ]

9 голосов
/ 28 мая 2009

В файле служебного класса.

4 голосов
/ 28 мая 2009

В C # 3.0 я бы, вероятно, сделал это методом расширения для класса string. Я бы сгруппировал все свои строковые расширения в один статический класс, чтобы улучшить читаемость.

 public static class StringExtensions
 {
      public static bool IsNumeric( this string source )
      {
          if (string.IsNullOrEmpty( source ))
          { 
               return false;
          }
          ...
      }

      public static bool IsMoney( this string source )
      {
          ...
      }

      ...
 }

Использование:

 if (amountLabel.Text.IsNumeric())
 {
    ...
 }
3 голосов
/ 28 мая 2009

Я предполагаю, что вы ссылаетесь на строковую переменную. Если это так, я бы предложил одну из двух вещей

  1. Если вы используете PRE .NET 3.0, вы можете поместить его в класс StringHelper следующим образом:

    public static class StringHelper
    {
      public static bool StringIsNumber(String value)
      {
        //do your test here
      }
    }
    
  2. Если вы используете POST .NET 3.0, вы можете изменить их как методы расширения и сделать что-то вроде этого

    public static class StringExtensions
    {
        public bool IsNumber(this String value)
        {
        //do your test here
        }
    }
    
1 голос
/ 28 мая 2009

Похоже, что вы могли бы использовать встроенные функции int.TryParse(string, out int) или double.TryParse(string, out double), которые оба возвращают bool, но в любом случае пойти на совет ck.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...