Когда не использовать статическое ключевое слово в C #? - PullRequest
0 голосов
/ 16 января 2019

Что делает плохой практикой использование статического ключевого слова при определении метода в C #?Я знаю, что с static мы можем напрямую обращаться к функции в классе, не создавая экземпляр класса.Но когда мы не должны использовать статические?

Ответы [ 3 ]

0 голосов
/ 16 января 2019

Метод, который не обращается к каким-либо данным экземпляра, должен быть помечен как static: https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1822-mark-members-as-static?view=vs-2017 В зависимости от использования он все равно может быть объявлен как метод private.

Если метод получает доступ к каким-либо данным экземпляра, он не может быть статическим. Компилятор обеспечивает это.

Типичными примерами статических методов являются, например, String.Format и Int32.Parse. Нет смысла выделять string или int перед вызовом этих методов.

0 голосов
/ 16 января 2019

Вы создаете статический метод, когда вам не нужен метод для доступа к любому из нестатических элементов вашего класса.Например, учтите метод DateTime.Parse.Вы можете создать экземпляр DateTime как обычно, но если вам нужно проанализировать конкретную дату, вы можете вызвать DateTime.Parse, чтобы вернуть действительный DateTime, не создавая экземпляр DateTime как таковой.Поскольку этот метод не имеет доступа к какому-либо конкретному элементу класса DateTime, он объявляется как static

Дополнительная информация:

https://www.codeproject.com/Questions/1208992/When-to-use-static-methods-Csharp

https://hackernoon.com/c-static-vs-instance-classes-and-methods-50fe8987b231

0 голосов
/ 16 января 2019

Существует полное объяснение использования «статического» свойства здесь Microsoft.

В опыте веб-фреймворка (например, для .NET Core) мы используем статическое объявление для примитивных значений, которые НЕ потребуют никаких изменений.

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