Я должен сделать свои частные методы класса статичными?

При записи CD, Вы не должны рассматривать файл ISO как файл. Если Вы просто скопировали файл в CD, это не загрузочный CD. Большинство средств записи CD имеет опцию записать файл образа диска. Образ диска хранится в файле ISO. Необходимо записать изображение к CD, не файл ISO. Если Вы дважды щелкаете по файлу ISO, он мог бы принять значение по умолчанию к точно, в чем Вы нуждаетесь.

Когда-то записанный, помещает CD в CD-привод. Если CD имеет просто файл ISO, то Вы не записывали изображение правильно, если существует выбор файлов, то Вы, вероятно, сделали его правильно.

, Когда Вы загрузитесь, войдите в BIOS (обычно с F8, F12, DEL или другим специальным ключом). В BIOS можно просмотреть порядок загрузки. Можно изменить порядок уделить первостепенное значение CD или даже USB. НО, при попытке загрузиться, если выбор не представляет загрузочные медиа, BIOS ступит в следующую опцию.

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

15
задан Community 23 May 2017 в 10:30
поделиться

8 ответов

If the methods don't access any of the type's state then they should be static.

Static method calls provide a performance gain over instance methods and the presence of a static method tells future readers of your code that calling this method will create no side effects in the the state of the current instance of the type.

The performance gain of a static method comes from the fact that the compiler does not have to emit callvirt instructions to call a static method. The callvirt instruction is handy for instance calls in that it does a null check prior to calling the method. However, when you call a static methods there is no need to check for null so the compiler is free to emit the faster call instruction which doesn't check for null.

37
ответ дан 1 December 2019 в 00:45
поделиться

I always think if they can be made static (and the compiler will soon let you know if they can't) then they should be made so. See this duplicate question on SO for further discussion.

3
ответ дан 1 December 2019 в 00:45
поделиться

I only make methods static when i am sure that they don't have any side effects.

0
ответ дан 1 December 2019 в 00:45
поделиться

As Dan Diplo says, if they can be made static, they should be made static. This is only true for private static methods (which is what you asked about). For public methods, however, they will just confuse users of your class. Public methods should be made static only if they will be used without an instance of the class by callers, the performance loss of not making them static be damned.

4
ответ дан 1 December 2019 в 00:45
поделиться

If a method doesn't use any instance data in the class, it should be static. That way it's clear that it's independent of the instances, and that you don't have to create an instance to call it.

Any performance differences should not be a concern. There is of course a difference in how a static method and an instance method are called, but you will most likely not be able to measure any consistent performance difference. The difference is so small that sometimes calling an instance method might actually be faster just because the instructions happens to line up better in the execution.

0
ответ дан 1 December 2019 в 00:45
поделиться

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

0
ответ дан 1 December 2019 в 00:45
поделиться

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

-1
ответ дан 1 December 2019 в 00:45
поделиться

Подумайте о статических методах и многопоточности. Вы должны быть очень осторожны. Это обсуждение похоже на определение шаблона: «решение проблемы в некотором контексте». Вы не должны говорить: «Это нужно делать вот так». Это зависит от контекста.

0
ответ дан 1 December 2019 в 00:45
поделиться
Другие вопросы по тегам:

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