Четверг, 25 Апреля 2024, 12:44

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » C# - обязательно ли писать private ?
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 bool a

можно написать
Код
bool a


А слово private за тебя додумает компьютер. А вот если нужна открытая для других классов переменная (public), то тут уже обязательно нужно указать

Код
public bool a

Иначе компьютер будет считать ее 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 специально можно вообще не писать ?

мне кажется лучше писать потому, что код выглядит аккуратней... хотя сколько людей столько мнений smile


Карта моего канала по созданию игр на 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
старожил
Сейчас нет на сайте
Нужно еще помнить, что если класс приватный, то нельзя его члены делать публичными.
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » C# - обязательно ли писать private ?
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг