Подтвердить что ты не робот

Создание класса Утилиты?

Я очень новичок в ООП, и я стараюсь, чтобы все было строго на основе классов, при использовании хороших принципов кодирования.

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

public class Utilities
{
    int test;

    public Utilities()
    {
    }

    public int sum(int number1, int number2)
    {
        test = number1 + number2;
    }
    return test;
}

Создав этот класс Утилиты, я просто создаю объект Utilities и запускаю методы по своему выбору? У меня есть эта идея класса Utilities правильно?

4b9b3361

Ответ 1

Вы должны сделать класс static следующим образом:

public static class Utilities {
    public static int Sum(int number1, int number2) {
        return number1 + number2;
    }
}

int three = Utilities.Sum(1, 2);

Класс должен (обычно) не иметь никаких полей или свойств. (Если вы не хотите делиться одним экземпляром какого-либо объекта по вашему коду, в этом случае вы можете сделать свойство static только для чтения.

Ответ 2

Если вы работаете с .NET 3.0 или выше, вы должны изучить методы расширения. Они позволяют вам написать static функцию, которая будет действовать против определенного типа, такого как Int32, и в то же время выглядит как метод для этого объекта. Тогда вы можете получить: int result = 1.Add(2); ,

Попробуйте это; это может просто показать вам другой путь. ;)

С# Tutorial - Методы расширения

Ответ 3

Вам будет лучше использовать класс static с методами static. Тогда вам не нужно создавать экземпляр класса утилиты, чтобы использовать его. Он будет выглядеть примерно так:

public static Utilites
{
  public static int sum(int number1, int number2)
  {
     test = number1+number2;
     return test;
  }
}

Затем вы можете использовать его следующим образом:

int result = Utilites.sum(1, 3);

Ответ 4

Лучше всего сделать функции ненадежными для членов класса. Поэтому вы можете сделать статические функции.

Лучше сделать функции методом расширения типа. см. здесь

Ответ 5

В то время как новый для ООП и попытка получить представление о лучших практиках, может быть хорошей идеей попытаться избежать классов полезности. Вы можете переделать свой класс, например

public class Sum
{
    private int _result;

    public int Result {
       get {
           return _result;
       }
    }

    public Sum(int startNum) {
        _results = startNum;
    }

    public void Add(int num) {
        _result += num;
    }
}

И вызывается как:

Sum sum = new Sum(1);
sum.add(2);
int result = sum.Result;

Это будет хорошая практика, пока дальнейший опыт работы с ООП не поможет вам проанализировать компромиссы с использованием принципов полезности и чистых принципов ООП.

Ответ 6

  1. Создайте класс Utility как открытый статический класс.
  2. Определенный служебный метод-метод со статическим ключевым словом

Вызов метода: -

int result = Utilities.sum(1, 2);

   public static class MyMath
         {
             int result;

             public static int sum(int number1, int number2)
             {
                 result= number1+number2;
                 return result;
             }
        }

Ответ 7

да, это не скомпилируется, потому что int-тест, который не поддерживается внутри статического класса, либо делает его как статический int-тест, который будет поддерживаться, и возвращает вывод

Ответ 8

сделайте это.

public static class Utilities
{
    int test;

    public static int sum(int number1, int number2)
    {
        test = number1+number2;
        return test;
    }
}

Таким образом вы используете его как

int result = Utilities.sum(1, 2);