Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Когда нужно писать "this." ? И правильно ли я понял его назначение:) 
V
    Опции темы
Gunslinger
Дата 3.4.2010, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



1. Назначение this (для не static классов - я в курсе). Это из-за области видимости в методах? Чтобы не порождать конфликт, если в методе используется локальная переменная с таким же типом и именем, что и поле класса?
2. Раз метод пишем мы же, то все локальные переменные и аргументы мы можем называть иначе, чем поля. И никакого конфликта.
PM MAIL   Вверх
ДобренькийПапаша
Дата 3.4.2010, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: 3
Всего: 7



Например при расширении класса без this не обойтись)))
При написании конструктора, который вызывает другой конструктор в этом же классе без this не то, чтобы не обойтись - некрасиво без этой конструкции будет.

Это сразу, что в голову пришло, по поводу тех случаев, когда this исключительно полезен)))


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
azesmcar
Дата 3.4.2010, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата(Gunslinger @  3.4.2010,  18:13 Найти цитируемый пост)
Чтобы не порождать конфликт, если в методе используется локальная переменная с таким же типом и именем, что и поле класса?

вообще микрософтовский стиль рекомендует именовать поля вот так
Код

private int field1_;
private int field2_;

а локальные переменные без подчеркивания. Если следовать этому стилю
1. из кода будет ясно видно, где локальные переменные а где поля
2. конфликтов не будет

Цитата(Gunslinger @  3.4.2010,  18:13 Найти цитируемый пост)
2. Раз метод пишем мы же, то все локальные переменные и аргументы мы можем называть иначе, чем поля. И никакого конфликта. 

ну да, а в чем вопрос?

PM   Вверх
PashaPash
Дата 3.4.2010, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 9
Всего: 49



azesmcar, странно, я не замечал в майкрософтовском стиле никаких упоминаний подчеркиваний, тем более в конце имени поля. В исходниках фреймворка и MS проектах на codeplex подчеркиваний в конце имени тоже нет. Можно ссылку на определение стиля?


--------------------
PM MAIL WWW   Вверх
azesmcar
Дата 3.4.2010, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 2
Всего: 211



Цитата(PashaPash @  3.4.2010,  23:31 Найти цитируемый пост)
azesmcar, странно, я не замечал в майкрософтовском стиле никаких упоминаний подчеркиваний, тем более в конце имени поля. В исходниках фреймворка и MS проектах на codeplex подчеркиваний в конце имени тоже нет. Можно ссылку на определение стиля? 

Сейчас поищу, возможно устаревшая информация.

Добавлено @ 23:45
PashaPash

Ты прав, это был другой стандарт (не микрософтовский), почему-то мне запомнился microsoft. А microsoft как раз наоборот, не рекомендует использовать подчеркивания
Цитата

# Do not use Hungarian notation
# Do not use a prefix for member variables (_, m_, s_, etc.). If you want to distinguish between local and member variables you should use “this.” in C# and “Me.” in VB.NET.
# Do use camelCasing for member variables 
...

http://blogs.msdn.com/brada/articles/361363.aspx


Это сообщение отредактировал(а) azesmcar - 3.4.2010, 23:47
PM   Вверх
Gunslinger
Дата 4.4.2010, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Цитата(azesmcar @  3.4.2010,  21:59 Найти цитируемый пост)
ну да, а в чем вопрос?

Получается полюбому писать this.? Для удобочитаемости?

Это сообщение отредактировал(а) Gunslinger - 4.4.2010, 10:23
PM MAIL   Вверх
ДобренькийПапаша
Дата 4.4.2010, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: 3
Всего: 7



Цитата(Gunslinger @ 4.4.2010,  10:18)
Получается полюбому писать this.? Для удобочитаемости?

По-моему не обязательно, а что вам вообще мешает почитать спецификацию на msdn? 

PashaPash, ага, +1. Я тоже удивился, когда про подчёркивания прочитал)))

Это сообщение отредактировал(а) ДобренькийПапаша - 4.4.2010, 10:58


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
Gunslinger
Дата 4.4.2010, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Цитата(ДобренькийПапаша @  4.4.2010,  10:57 Найти цитируемый пост)
а что вам вообще мешает почитать спецификацию на msdn

я в русскоязычном мсдн по с# копаюсь, где у них спецификация не знаю. Короче назначение this понял, дальше буду по читаемости кода смотреть -- ставить или нет.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0518 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.