powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Нужно ли private переменные начинать с нижнего подчеркивания?
78 сообщений из 78, показаны все 4 страниц
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979330
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
например здесь:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
public class BookService
    {
        private readonly IBookRepository bookRepository;

        public BookService(IBookRepository bookRepository)
        {
            this.bookRepository = bookRepository;
        }

        public Book[] GetAllByQuery(string query)
        {
            if (IsIsbn(query))
                return bookRepository.GetAllByIsbn(query);

            return bookRepository.GetAllByTitleOrAuthor(query);
        }
    }
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979394
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что такое private переменные?

Есть локальные переменные.
Есть приватные поля.

Имена приватных полей принято начинать с подчеркивания в большинстве кодестайлов
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979433
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview,

нужно пойти и обсудить у себя в команде то, каких правил вы будете придерживаться
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979447
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Что такое private переменные?

Есть локальные переменные.
Есть приватные поля.

Имена приватных полей принято начинать с подчеркивания в большинстве кодестайлов

поля конечно
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979486
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По умолчанию рекомендуется подчеркивать, но это вопрос code style принятого в проекте. Правила оформления кода можно задать в .editorconfig, положить в папку с проектом и тогда они у всех будут одинаковые (студия будет предупреждать об их нарушении). Анализатор правил для этого, который можно встроить в CI-сборку у МС пока что в бетте (есть Stylecop, но он несколько легаси, т.к. использует свои настройки в файлах *.rules).

Лично я за "верблюжатину" с подчеркиванием для полей, чтобы различать локальные переменные и поля - уже несколько раз натыкался в коде на баги, когда люди вместо того чтобы присвоить значение полю по ошибке присваивали переменную саму себе - компилятор выдает об этом предупреждение, но кругом ведь "Настоящие Программисты", которые на такую ерунду как предупреждения компилятора вообще не смотрят :)
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979498
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
По умолчанию рекомендуется подчеркивать, но это вопрос code style принятого в проекте. Правила оформления кода можно задать в .editorconfig, положить в папку с проектом и тогда они у всех будут одинаковые (студия будет предупреждать об их нарушении). Анализатор правил для этого, который можно встроить в CI-сборку у МС пока что в бетте (есть Stylecop, но он несколько легаси, т.к. использует свои настройки в файлах *.rules).

Лично я за "верблюжатину" с подчеркиванием для полей, чтобы различать локальные переменные и поля - уже несколько раз натыкался в коде на баги, когда люди вместо того чтобы присвоить значение полю по ошибке присваивали переменную саму себе - компилятор выдает об этом предупреждение, но кругом ведь "Настоящие Программисты", которые на такую ерунду как предупреждения компилятора вообще не смотрят :)

Понял, спасибо за развернутый ответ.

ЗЫ
Буду признателен если проконсультируете как виндовс аутентификацию к интернет сайту прикрутить в соседней теме
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979651
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview,

еще надо научиться писать
Код: c#
1.
if (IsIsbn(...) == false)


вместо
Код: c#
1.
if (!IsIsbn(...))



или даже вместо
Код: c#
1.
if (!isIsbn(...))



- тогда вообще ляпота будет
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979658
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77
еще надо
это кому надо?
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979708
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
17-77
еще надо
это кому надо?

Это видимо шутка на тему :)
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979709
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
По умолчанию рекомендуется подчёркивать...

Где?

В документации от Microsoft чёрным по белому написано, что особых рекомендаций по наименованию private полей нет.
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979738
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
Где?

По умолчанию в настройках VS.


...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979741
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
В документации от Microsoft чёрным по белому написано, что особых рекомендаций по наименованию private полей нет.
а какие особые рекомендации у них есть?
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979744
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
skyANA
В документации от Microsoft чёрным по белому написано, что особых рекомендаций по наименованию private полей нет.
а какие особые рекомендации у них есть?

Нет, как раз насчет приватных полей нету.

https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/names-of-type-members#names-of-fields
авторInternal and private fields are not covered by guidelines
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979751
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
skyANA
В документации от Microsoft чёрным по белому написано, что особых рекомендаций по наименованию private полей нет.
а какие особые рекомендации у них есть?

Ссылку уже привели: https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979758
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77
listtoview,

еще надо научиться писать
Код: c#
1.
if (IsIsbn(...) == false)


вместо
Код: c#
1.
if (!IsIsbn(...))



или даже вместо
Код: c#
1.
if (!isIsbn(...))



- тогда вообще ляпота будет

зачем?
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979761
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
17-77
listtoview,

еще надо научиться писать
Код: c#
1.
if (IsIsbn(...) == false)



вместо
Код: c#
1.
if (!IsIsbn(...))




или даже вместо
Код: c#
1.
if (!isIsbn(...))




- тогда вообще ляпота будет

зачем?

Да шутка это :)

Зачем вам названия private полей начинать с нижнего подчёркивания?
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979763
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
listtoview
пропущено...

зачем?

Да шутка это :)

Зачем вам названия private полей начинать с нижнего подчёркивания?

что бы от public отличать и от параметров в методах
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979765
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
Дмитрий Мух
пропущено...

Да шутка это :)

Зачем вам названия private полей начинать с нижнего подчёркивания?

что бы от public отличать и от параметров в методах

и в чём проблема их отличать?

public - это PascalCase, private - camelCase
и параметров в методах с таким же названием как и поля класса у вас нет в примере

неужели в конструктор передаётся один bookRepository, а где-то в метод другой?
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979767
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview,

и делать поля класса public-ами - это моветон
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979776
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
listtoview
пропущено...

что бы от public отличать и от параметров в методах

и в чём проблема их отличать?

public - это PascalCase, private - camelCase
и параметров в методах с таким же названием как и поля класса у вас нет в примере

неужели в конструктор передаётся один bookRepository, а где-то в метод другой?



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
private string _name;
private int _sex;
public order;

public Name
{
  get
  {
      return this._name;
  }
}

public void SetSex(int sex)
{
   this._sex = sex;
}
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979779
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
Дмитрий Мух
пропущено...

и в чём проблема их отличать?

public - это PascalCase, private - camelCase
и параметров в методах с таким же названием как и поля класса у вас нет в примере

неужели в конструктор передаётся один bookRepository, а где-то в метод другой?



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
private _name
public order;

public Name
{
  get
  {
      return this._name;
  }
}


Код: c#
1.
2.
3.
4.
private string name
public int Order;

public string Name => name;
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979780
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
listtoview
пропущено...



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
private _name
public order;

public Name
{
  get
  {
      return this._name;
  }
}


Код: c#
1.
2.
3.
4.
private string name
public int Order;

public string Name => name;


а если 4.5? :)
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979783
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух,

обратите внимание там _sex добавил
что бы метод показать
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979784
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
listtoview,

и делать поля класса public-ами - это моветон


Если оно static readonly, то вполне можно.
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979786
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
Дмитрий Мух
пропущено...

Код: c#
1.
2.
3.
4.
private string name
public int Order;

public string Name => name;



а если 4.5? :)

У тебя точно 10+ лет опыта в C#?
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979788
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух

Код: c#
1.
2.
private string name
public string Name => name;


Еще проще в одну строку:
Код: c#
1.
public string Name {get; private set;}
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979789
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
listtoview
пропущено...

а если 4.5? :)

У тебя точно 10+ лет опыта в C#?

а, ну да, воркает
я просто такой синтаксис не использую
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979791
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Дмитрий Мух

Код: c#
1.
2.
private string name
public string Name => name;


Еще проще в одну строку:
Код: c#
1.
public string Name {get; private set;}


круть
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979794
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
Дмитрий Мух,

обратите внимание там _sex добавил
что бы метод показать

Я обратил внимание, что вы везде используете this.

Если у вас на проекте так принято, то так и пишите: this.name, this.sex.
Если хотите договорится о том, чтобы писать _name, _sex, то повторю: "нужно пойти и обсудить у себя в команде то, каких правил вы будете придерживаться".

А вот использовать и this, и нижнее подчёркивание: this._name, this._sex, - это мягко говоря перебор
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979796
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
fkthat
пропущено...

Еще проще в одну строку:
Код: c#
1.
public string Name {get; private set;}



круть

вот это открытие

когда там авто-свойства появились? в C# 3.0
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979798
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
У тебя точно 10+ лет опыта в C#?

Я уже тоже и не помню, с какой версии C# появились проперти с лямбдой. Впрочем, давно уже ничего не мешает собирать под какой-то фреймворк версией компилятора из более позднего. Разве что если этот более поздний не установлен.
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979799
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
Дмитрий Мух
пропущено...

Да шутка это :)

Зачем вам названия private полей начинать с нижнего подчёркивания?

что бы от public отличать и от параметров в методах


Можно воспользоваться такой рекомендацией:

Код: c#
1.
2.
private int privatnoe_var_1;
public string publichnoe_var_2;
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979800
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Дмитрий Мух
У тебя точно 10+ лет опыта в C#?

Я уже тоже и не помню, с какой версии C# появились проперти с лямбдой.

C# 6.0
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979801
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
listtoview
пропущено...

что бы от public отличать и от параметров в методах


Можно воспользоваться такой рекомендацией:

Код: c#
1.
2.
private int privatnoe_var_1;
public string publichnoe_var_2;


А вот так использовать нижнее подчёркивание как раз не рекомендуется. Плюс вводить какие-то префиксы.
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979803
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
А вот так использовать нижнее подчёркивание как раз не рекомендуется. Плюс вводить какие-то префиксы.

Да это, походу, тоже шутка была.
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979805
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview

зачем?

ну как зачем - читаемость кода превыше всего, а восклицательный знак сливается с i, есть шансы пропустить и будет тупой баг
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979806
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух,

непонятно как вы предлагаете public, private, properties и parameters отличать?

Я предлагаю

свойства:
Код: c#
1.
2.
3.
4.
public string Name
{
   ...
}



private:
Код: c#
1.
private _name;



public:
Код: c#
1.
public name;



parameters:
Код: c#
1.
2.
3.
4.
public void SetName(string name)
{
   this._name = name;
}
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979807
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview,

вы ж сами говорили чтоб отличать приватные публичные поля и переменные

Код: c#
1.
this._name = name;



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

Код: c#
1.
2.
3.
this.Name // публичное свойство
this.name // приватное поле
name // локальная переменная или параметр



или

Код: c#
1.
2.
3.
Name // публичное свойство
_name // приватное поле
name // локальная переменная или параметр
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979809
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
Дмитрий Мух,

непонятно как вы предлагаете public, private, properties и parameters отличать?

Я предлагаю

свойства:
Код: c#
1.
2.
3.
4.
public string Name
{
   ...
}




private:
Код: c#
1.
private _name;




public:
Код: c#
1.
public name;




parameters:
Код: c#
1.
2.
3.
4.
public void SetName(string name)
{
   this._name = name;
}


Объясняю.

public поля - это плохой стиль, их не должно быть
разве что public static readonly для каких-нибудь констант

но тогда для них рекомендуется использовать PascalCase, то есть с большой буквы
а для private полей рекомендуется camelCase, то есть с маленькой буквы

а так как вы уже используете this и в конструкторе и в методах, то и с параметрами проблем нет:
Код: c#
1.
2.
3.
4.
public void SetName(string name)
{
   this.name = name;
}



если коротко, то судя по вашим примерам у вас на проекте принято к private полям обращаться через this

почему вас это не устраивает? почему вы на форуме это обсуждаете, а не у себя в команде?
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979851
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
listtoview
Дмитрий Мух,

непонятно как вы предлагаете public, private, properties и parameters отличать?

Я предлагаю

свойства:
Код: c#
1.
2.
3.
4.
public string Name
{
   ...
}




private:
Код: c#
1.
private _name;




public:
Код: c#
1.
public name;




parameters:
Код: c#
1.
2.
3.
4.
public void SetName(string name)
{
   this._name = name;
}


Объясняю.

public поля - это плохой стиль, их не должно быть
разве что public static readonly для каких-нибудь констант

но тогда для них рекомендуется использовать PascalCase, то есть с большой буквы
а для private полей рекомендуется camelCase, то есть с маленькой буквы

а так как вы уже используете this и в конструкторе и в методах, то и с параметрами проблем нет:
Код: c#
1.
2.
3.
4.
public void SetName(string name)
{
   this.name = name;
}



если коротко, то судя по вашим примерам у вас на проекте принято к private полям обращаться через this

почему вас это не устраивает? почему вы на форуме это обсуждаете, а не у себя в команде?

может быть еще base.name
c this.name все прозрачно
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979857
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
c this.name все прозрачно

Вижуал студия по дефолту тоже рекомендует не ставить this, если это не нужно (в редакторе эти this будут подсвечиваться серым цветом, так же, как ненужные юзинги).
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979898
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
может быть еще base.name

Ещё раз: это плохой стиль. Походу у вас там классы криво спроектированы.
И использование нижнего подчёркивания ситуацию не исправит.
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979901
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
может быть еще base.name
это, извините, уже не приватное поле, мы же вроде про приватные говорим
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979903
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
listtoview
может быть еще base.name
это, извините, уже не приватное поле, мы же вроде про приватные говорим

По всей видимости они там понаписали такого, что в итоге сами уже не понимают, что к чему.

И ТС при этом готов за рефакторинг взяться
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979944
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шёл 2020 год...

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

конечно линтеры решают.
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979950
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух

По всей видимости они там понаписали такого, что в итоге сами уже не понимают, что к чему.

И ТС при этом готов за рефакторинг взяться


Команда из двух пхпастов и ютуб у них начальник Рефакторинг это вообще, по-моему, что-то для книжки "Мифы и легенды народов ИТ". На деле если говнокод попадает в проект, то он селится там уже навечно, и все, что с ним может потом происходить это только то, что он будет еще больше разрастаться как квашня
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979954
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
шёл 2020 год...

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

конечно линтеры решают.

да есть всё, просто это надо читать, вникать, а людям хочется, чтобы ответ на возникший вопрос им выдали сразу и на первой странице
причём не важно как этот вопрос сформулирован и понятна-ли его суть
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979955
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
шёл 2020 год...

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

конечно линтеры решают.

Да есть ведь и гайдлайны от самих МС, есть FxCop, есть StyleCop, скоро выйдет "современная" замена StyleCop. Все это легко встраивается и в CI. Но, ведь, "Настоящие Программисты" брезгуют даже предупреждалки компилятора фиксить, про какой-то там CA/SA речи даже и не идет, тут ведь полет творчества - разве Микеланджело использовал какие-то гайдлайны, когда свои картины творил
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39979998
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
Shocker.Pro
пропущено...
это, извините, уже не приватное поле, мы же вроде про приватные говорим

По всей видимости они там понаписали такого, что в итоге сами уже не понимают, что к чему.

И ТС при этом готов за рефакторинг взяться

ну так this.name может быть и public
не хорошо конечно, но впринципе может
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980002
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
ну так this.name может быть и public
публичные поля тоже хочешь со строчной начинать?
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980003
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообщем свойчтва с большой
паблик с маленькой
прайвет с подчеркивания

и везде this если этот экземпляр
и никакой неоднозначности
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980015
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще поля рудимент, который стоит применять ну в очень крайних случаях.
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980018
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
Дмитрий Мух
пропущено...

По всей видимости они там понаписали такого, что в итоге сами уже не понимают, что к чему.

И ТС при этом готов за рефакторинг взяться

ну так this.name может быть и public
не хорошо конечно, но впринципе может

Слушай, в следующий раз, когда будешь создавать топик, то опиши ваш случай в его первом посте, если не сложно :)

Всё свелось к тому, что вот сложилось у вас так, что вы теперь public поля от private не отличаете.
Ну наговнокодили, с кем не бывает.
Рефакторить не хотите. Что делать?

Ну используйте нижнее подчёркивание, хуже уже не будет :)
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980019
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
вообщем свойчтва с большой
паблик с маленькой
прайвет с подчеркивания

и везде this если этот экземпляр
и никакой неоднозначности

protected с чего начинать будешь, а internal?
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980024
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
ну так this.name может быть и public
не хорошо конечно, но впринципе может

Если у тебя что-то непаблик вызывает паблик того же класса, то это явный говнокод (т.н. инверсия абстракции). Если паблик вызывает паблик, то это, очень возможно, тоже говнокод (кроме случая, когда это один и тот же метод с разной сигнатурой параметров).
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980035
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно посмотреть, например, в исходники самого .NET. Там локальные переменные верблюдом, приватные поля - верблюд с подчеркиванием, все остальное паскальным стилем. Своего-то понавыдумывать можно чего угодно, хоть китайских префиксов и кириллических суффиксов, только зачем.
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980060
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview,
А с чего начинать члены класса с модификаторами доступа отличными от private и public?
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980284
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
listtoview
пропущено...

ну так this.name может быть и public
не хорошо конечно, но впринципе может

Слушай, в следующий раз, когда будешь создавать топик, то опиши ваш случай в его первом посте, если не сложно :)

Всё свелось к тому, что вот сложилось у вас так, что вы теперь public поля от private не отличаете.
Ну наговнокодили, с кем не бывает.
Рефакторить не хотите. Что делать?

Ну используйте нижнее подчёркивание, хуже уже не будет :)

в исходниках так
в документации так
плюс я пытаюсь выработать универсальный подход

все же паблик поля иногда имеют место быть
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980287
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВ
listtoview,
А с чего начинать члены класса с модификаторами доступа отличными от private и public?

но это уже инкапсуляция на уровне сборки, если например internal
плюс можно шарить чз [assembly:""]
получается ближе синтаксис к public, т.е. : name
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980316
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
все же паблик поля иногда имеют место быть

Когда?
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980341
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
listtoview
все же паблик поля иногда имеют место быть

Когда?


например вмессто автосвойств

Код: c#
1.
public string Name {get; set;}



можно просто писать

Код: c#
1.
public string name;


не? :)


вообще говоря интерпретатор свойства заменяет методами :)
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980343
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
Дмитрий Мух
пропущено...

Когда?


например вмессто автосвойств

Код: c#
1.
public string Name {get; set;}




можно просто писать

Код: c#
1.
public string name;



не? :)

Можно, но это плохой стиль.
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980347
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
listtoview
пропущено...


например вмессто автосвойств

Код: c#
1.
public string Name {get; set;}




можно просто писать

Код: c#
1.
public string name;



не? :)

Можно, но это плохой стиль.


ну да
https://blog.codinghorror.com/properties-vs-public-variables/
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980350
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
Дмитрий Мух
пропущено...

Можно, но это плохой стиль.


ну да
https://blog.codinghorror.com/properties-vs-public-variables/

Чего ну да? Понятие инкапсуляции вам знакомо? Целосности данных и её защиты?

Наверное не имеет смысла вам про это рассказывать, раз за 10+ лет вы этим не поинтересовались.
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980367
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
можно просто писать
Если ты приходишь сюда за советом опытных людей, то совет - не используй публичные поля, использую публичные свойства. Если пока не понимаешь почему, поймешь позже (может быть)

Это примерно из той же серии, почему не надо использовать статику и почему надо использовать интерфейсы. Да, технически можно не использовать интерфейсы и везде напихать статику, но делать так не надо
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980433
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
Чего ну да? Понятие инкапсуляции вам знакомо? Целосности данных и её защиты?

Есть еще такой фактор, что некоторые сторонние фреймворки могут не работать с полями вместо свойств. Я, например, совсем не уверен, что те же EF или Automapper будут правильно работать если свойства на поля позаменять (я не проверял, потому что делать вместо свойств паблик поля мне просто никогда бы в голову не пришло).

listoview, да прикрути ты к проекту FxCop - у него на всех ворнингах ссылки на описание, где, обычно, рассказывается почему так или иначе делать нельзя - очень еще полезно в плане образования.
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980450
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
Дмитрий Мух
Чего ну да? Понятие инкапсуляции вам знакомо? Целосности данных и её защиты?

Есть еще такой фактор, что некоторые сторонние фреймворки могут не работать с полями вместо свойств. Я, например, совсем не уверен, что те же EF или Automapper будут правильно работать если свойства на поля позаменять (я не проверял, потому что делать вместо свойств паблик поля мне просто никогда бы в голову не пришло).

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

а что я
я стараюсь не юзать паблик поля
но для синтаксиса нужно универсальное решение, паблик поля же впринципе существуют
плюс авторы сорсов юзают нижнее подчеркивание
вот мои аргументы

а у абрикосов же продуктовая контора, они рефакторинг всего делают
у меня такой возможности нет
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980468
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
fkthat
пропущено...

Есть еще такой фактор, что некоторые сторонние фреймворки могут не работать с полями вместо свойств. Я, например, совсем не уверен, что те же EF или Automapper будут правильно работать если свойства на поля позаменять (я не проверял, потому что делать вместо свойств паблик поля мне просто никогда бы в голову не пришло).

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

а что я
я стараюсь не юзать паблик поля
но для синтаксиса нужно универсальное решение, паблик поля же впринципе существуют
плюс авторы сорсов юзают нижнее подчеркивание
вот мои аргументы

а у абрикосов же продуктовая контора, они рефакторинг всего делают
у меня такой возможности нет

Абрикосы тоже юзают нижнее подчёркивание.

В новых микросервисах и библиотеках для внутреннего использования.
А в основном продукте не юзают, потому как ему почти 15 лет и там давно сложившиеся соглашения.

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

Ещё и нас пытаешься сделать ответственными за своё решение. Типа мне на форуме опытные люди сказали, что нужно.

Фиг тебе, иди и обсуждай с коллегами
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980471
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
я стараюсь не юзать паблик поля
но для синтаксиса нужно универсальное решение, паблик поля же впринципе существуют
плюс авторы сорсов юзают нижнее подчеркивание
вот мои аргументы


По-моему в гайдлайнах сказано, что все что не параметры и не приватные поля должно быть PascalCase, параметры camelCase, а про приватные поля _ничегоНеСказано.
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980525
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
listtoview
я стараюсь не юзать паблик поля
но для синтаксиса нужно универсальное решение, паблик поля же впринципе существуют
плюс авторы сорсов юзают нижнее подчеркивание
вот мои аргументы


По-моему в гайдлайнах сказано, что все что не параметры и не приватные поля должно быть PascalCase, параметры camelCase, а про приватные поля _ничегоНеСказано.

ага
# internal and private fields should be _camelCase
https://github.com/dotnet/runtime/blob/b186c975c02a5ce0b45d86fb99063db127979894/.editorconfig#L71
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980527
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview

Это внутренние правила самого проекта дотнет. Я имел в виду рекомендации на docs.microsoft.com
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980534
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
listtoview

Это внутренние правила самого проекта дотнет. Я имел в виду рекомендации на docs.microsoft.com

да многие так пишут
https://www.c-sharpcorner.com/UploadFile/8a67c0/C-Sharp-coding-standards-and-naming-conventions/

а на docs.microsoft.com примера с прайват я не нашел
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980535
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
fkthat
пропущено...

Это внутренние правила самого проекта дотнет. Я имел в виду рекомендации на docs.microsoft.com

да многие так пишут
https://www.c-sharpcorner.com/UploadFile/8a67c0/C-Sharp-coding-standards-and-naming-conventions/

а на docs.microsoft.com примера с прайват я не нашел

тем более разработчики дотнет крутые ребята
ИМХО их соглашение не допускает неоднозначностей

...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980560
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview
а на docs.microsoft.com примера с прайват я не нашел

Вот же я уже писал .
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980581
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat
listtoview
а на docs.microsoft.com примера с прайват я не нашел

Вот же я уже писал .

спасибо!
значит берем пример с отцов
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980652
Shocker.Pro
Имена приватных полей принято начинать с подчеркивания в большинстве кодестайлов

а чё делать, когда оно станет пабликом?
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39980660
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
Shocker.Pro
Имена приватных полей принято начинать с подчеркивания в большинстве кодестайлов

а чё делать, когда оно станет пабликом?


Найти и дать хорошего подсрачника тому, кто это сделал -- очевидно же
...
Рейтинг: 0 / 0
Нужно ли private переменные начинать с нижнего подчеркивания?
    #39984554
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
шёл 2020 год...

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

конечно линтеры решают.

вопрос спорный, с точки зрения использования, лично мне вообще пофигу, как вы там называете инкапсулированные члены, я их не вижу и знать про них вообще не должен. а если мне это говнокодище править, то имхо, мне это совершенно не мешает, хоть с _, хоть без. Сам использую _, согласно гайдлайнам компании и мне норм.
...
Рейтинг: 0 / 0
78 сообщений из 78, показаны все 4 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Нужно ли private переменные начинать с нижнего подчеркивания?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]