C# - обязательно ли писать private ?
|
|
robertono | Дата: Воскресенье, 01 Сентября 2013, 15:24 | Сообщение # 1 |
Чокнутый Кот
Сейчас нет на сайте
| Вот например переменная Private bool a = true; Обязательно ли писать private ? Можно же просто bool a; . А на что тогда в данном случае влияет private ? С public и так всё понятно. А private ?
|
|
| |
AAS | Дата: Воскресенье, 01 Сентября 2013, 15:32 | Сообщение # 2 |
был не раз
Сейчас нет на сайте
| robertono, тем, что доступ к ней имеется только внутри класса.
|
|
| |
robertono | Дата: Воскресенье, 01 Сентября 2013, 15:39 | Сообщение # 3 |
Чокнутый Кот
Сейчас нет на сайте
| AAS, т.е. если я просто создам bool a например в void Update то она будет доступна только из Update этого класса, а если Private то по всему классу?
|
|
| |
DragYourAssets | Дата: Воскресенье, 01 Сентября 2013, 15:56 | Сообщение # 4 |
CHANGIN' ENGINES
Сейчас нет на сайте
| Цитата (robertono) AAS, т.е. если я просто создам bool a например в void Update то она будет доступна только из Update этого класса, а если Private то по всему классу? Если ты создашь переменную в функции, то она и будет доступна только в функции. Если ты объявляешь переменную в классе без какого-либо аксессора доступа, то это private по умолчанию.
|
|
| |
robertono | Дата: Воскресенье, 01 Сентября 2013, 16:01 | Сообщение # 5 |
Чокнутый Кот
Сейчас нет на сайте
| Цитата (DragYourAssets) то это private по умолчанию. ну тогда без разницы есть приват или нету? Тогда как его использовать (приват) в действии?
|
|
| |
Stalker_Shooter | Дата: Воскресенье, 01 Сентября 2013, 16:04 | Сообщение # 6 |
3D XNA'шник
Сейчас нет на сайте
| robertono, все переменные (точнее поля класса) и так первоначально неявно private, поэтому если Вам нужна закрытая переменная, то за место
можно написать
А слово private за тебя додумает компьютер. А вот если нужна открытая для других классов переменная (public), то тут уже обязательно нужно указать
Иначе компьютер будет считать ее private. С методами все наоборот.
А на счет доступности, в классе переменная доступна в том блоке, где создается, а так же во всех внутренних блоках (блок - расстояние между фигурными скобками {}), а вне класса переменная доступна, только если она public (хотя, в классах наследниках доступны так же переменные типа protected, но пока не советую углубляться в такие тонкости)
*Не убегай от снайпера, умрешь уставшим. *Мои статьи...
Сообщение отредактировал Stalker_Shooter - Воскресенье, 01 Сентября 2013, 16:06 |
|
| |
robertono | Дата: Воскресенье, 01 Сентября 2013, 16:06 | Сообщение # 7 |
Чокнутый Кот
Сейчас нет на сайте
| Stalker_Shooter, спасибо за подробное описание. Но тогда private специально можно вообще не писать ?
|
|
| |
Stalker_Shooter | Дата: Воскресенье, 01 Сентября 2013, 16:08 | Сообщение # 8 |
3D XNA'шник
Сейчас нет на сайте
| Цитата (robertono) Stalker_Shooter, спасибо за подробное описание Да не за что. Обращайся. Цитата (robertono) Но тогда private специально можно вообще не писать ? Для полей класса (переменные, массивы и т.п.) да. Для методов все наоборот, там можно public не писать.
*Не убегай от снайпера, умрешь уставшим. *Мои статьи...
Сообщение отредактировал Stalker_Shooter - Воскресенье, 01 Сентября 2013, 16:09 |
|
| |
DragYourAssets | Дата: Воскресенье, 01 Сентября 2013, 16:20 | Сообщение # 9 |
CHANGIN' ENGINES
Сейчас нет на сайте
| Цитата (Stalker_Shooter) Для методов все наоборот, там можно public не писать. С какого перепугу? Метод не будет публичным, если не добавить аксессор public.
Сообщение отредактировал DragYourAssets - Воскресенье, 01 Сентября 2013, 16:23 |
|
| |
Stalker_Shooter | Дата: Воскресенье, 01 Сентября 2013, 16:26 | Сообщение # 10 |
3D XNA'шник
Сейчас нет на сайте
| Цитата (DragYourAssets) С какого перепугу? Метод не будет публичным, если не сделать его паблик. Да, прошу прощения, это действительно так. мне почему-то казалось, что где-то я читал обратное, но значит просто перепутал.
*Не убегай от снайпера, умрешь уставшим. *Мои статьи...
|
|
| |
SomeOneInTheMask | Дата: Воскресенье, 01 Сентября 2013, 16:55 | Сообщение # 11 |
Stranger
Сейчас нет на сайте
| Цитата (robertono) Но тогда private специально можно вообще не писать ? мне кажется лучше писать потому, что код выглядит аккуратней... хотя сколько людей столько мнений
Карта моего канала по созданию игр на Unity3d, можно даже заказать урок бесплатно)
|
|
| |
Undead | Дата: Воскресенье, 01 Сентября 2013, 17:00 | Сообщение # 12 |
NeoAxis User
Сейчас нет на сайте
| Цитата (Stalker_Shooter) Для полей класса (переменные, массивы и т.п.) да. Для методов все наоборот, там можно public не писать. Ты ни чего не попутал с методами? Они по умолчанию тоже приватные.
Вcем зла.
|
|
| |
Stalker_Shooter | Дата: Воскресенье, 01 Сентября 2013, 17:27 | Сообщение # 13 |
3D XNA'шник
Сейчас нет на сайте
| Цитата (Undead) Ты ни чего не попутал с методами? Они по умолчанию тоже приватные. Цитата (Stalker_Shooter) Да, прошу прощения, это действительно так. мне почему-то казалось, что где-то я читал обратное, но значит просто перепутал.
Просто я не особо часто пользуюсь такими привилегиями языка и стараюсь (для красоты и понятности кода) явно указывать доступ.
*Не убегай от снайпера, умрешь уставшим. *Мои статьи...
|
|
| |
seaman | Дата: Понедельник, 02 Сентября 2013, 00:28 | Сообщение # 14 |
старожил
Сейчас нет на сайте
| Нужно еще помнить, что если класс приватный, то нельзя его члены делать публичными.
|
|
| |