Рекомендация Resharper состоит в том, чтобы сделать мой закрытый метод статичным хорошая рекомендация?

Это не работает, потому что xargs ожидает мочь к exec программа , данная как ее параметр.

С тех пор foobar в Вашем случае просто bash псевдоним или функция, там не программа для выполнения.

, Хотя это включает запуск bash для каждого файла, возвращенного find, Вы могли записать маленький сценарий оболочки таким образом:

#!/bin/bash
. $(HOME)/.bashrc
func $*

и затем передают название того сценария как параметр к xargs

9
задан mezoid 19 September 2009 в 02:57
поделиться

4 ответа

Я думаю, что это определенно главный кандидат для статического метода. Он не меняет никаких свойств, полей и т.д. класса.

Вот пример:

class MyClass
{
  public static void MakeStatusTheSame(MyClass mc, MySecondClass msc)
  {
     mc.status = msc.status;
  }

  private void MakeStatusTheSame(MySecondClass msc)
  {
    this.status = msc.status;
  }

  private int status;
}

Кроме того, вы можете сделать его методом расширения (который также будет статическим):

public static class Extensions
{
  public static MyClass MakeStatusTheSame(this MyClass mc, MySecondClass msc)
  {
    mc.status = msc.status
    return mc; /* make the method chainable */
   }
}
11
ответ дан 4 December 2019 в 07:23
поделиться

Думаю, да; видение того, что метод является статическим, является четким указанием на то, что метод не должен взаимодействовать с какими-либо членами экземпляра.

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

7
ответ дан 4 December 2019 в 07:23
поделиться

Рискуя показаться противоположным, я должен признать, что мне не нравится смешивать статические методы с методами экземпляра; и я вообще не люблю статические методы. Статические методы трудно протестировать, их сложно переопределить и сложно поддерживать. Я предпочитаю объединять все статические методы для работы с объектами Foo в один класс FooUtils или, что еще лучше, в одноэлементный экземпляр класса FooSomethingDoer.

Конечно, статические методы имеют смысл в некоторых случаях - для например, при создании вышеупомянутых синглтонов, фабрик и т. д. Я не говорю, что все статические методы созданы из чистого зла; Я просто предпочитаю ошибиться и избегать их, когда это возможно.

Должен признать, что мне не нравится смешивать статические методы с методами экземпляра; и я вообще не люблю статические методы. Статические методы трудно протестировать, их сложно переопределить и сложно поддерживать. Я предпочитаю объединять все статические методы для работы с объектами Foo в один класс FooUtils или, что еще лучше, в одноэлементный экземпляр класса FooSomethingDoer.

Конечно, статические методы имеют смысл в некоторых случаях - для например, при создании вышеупомянутых синглтонов, фабрик и т. д. Я не говорю, что все статические методы созданы из чистого зла; Я просто предпочитаю ошибиться и избегать их, когда это возможно.

Должен признать, что мне не нравится смешивать статические методы с методами экземпляра; и я вообще не люблю статические методы. Статические методы трудно протестировать, их сложно переопределить и сложно поддерживать. Я предпочитаю использовать все статические методы для работы с объектами Foo в одном классе FooUtils или, что еще лучше, в одноэлементном экземпляре класса FooSomethingDoer.

Конечно, статические методы имеют смысл в некоторых случаях - для например, при создании вышеупомянутых синглтонов, фабрик и т. д. Я не говорю, что все статические методы созданы из чистого зла; Я просто предпочитаю ошибиться и избегать их, когда это возможно.

трудно переопределить и трудно поддерживать. Я предпочитаю использовать все статические методы для работы с объектами Foo в одном классе FooUtils или, что еще лучше, в одноэлементном экземпляре класса FooSomethingDoer.

Конечно, статические методы имеют смысл в некоторых случаях - для например, при создании вышеупомянутых синглтонов, фабрик и т. д. Я не говорю, что все статические методы созданы из чистого зла; Я просто предпочитаю ошибаться и избегать их, когда это возможно.

трудно переопределить и трудно поддерживать. Я предпочитаю использовать все статические методы для работы с объектами Foo в одном классе FooUtils или, что еще лучше, в одноэлементном экземпляре класса FooSomethingDoer.

Конечно, статические методы имеют смысл в некоторых случаях - для например, при создании вышеупомянутых синглтонов, фабрик и т. д. Я не говорю, что все статические методы созданы из чистого зла; Я просто предпочитаю ошибиться и избегать их, когда это возможно.

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

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

8
ответ дан 4 December 2019 в 07:23
поделиться

Я обычно следую рекомендациям R #. Это частный метод, поэтому (надеюсь) вы не пишете для него модульные тесты. Если сделать его статическим, явно указано, что он не использует никаких членов экземпляра, что упрощает проверку на наличие побочных эффектов.

4
ответ дан 4 December 2019 в 07:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: