> For the complete documentation index, see [llms.txt](https://dao-soulmate-ecosystem.gitbook.io/l2egame/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dao-soulmate-ecosystem.gitbook.io/l2egame/gzon-monobehaviour.md).

# GZON MonoBehaviour

В классах допускается разумное использование публичных полей. Но сама семантика публичного поля подразумевает его не правильное использование. Рекомендуется продумать архитектуру без публичных полей.

## Стандарты именования

**camelCase** - первая буква слова всегда пишется маленькой буквой, а после этого каждое слово начинается с заглавной буквы.

**PascalCase** - первая буква каждого слова написана заглавной буквой.

**IPascalCase** - первая заглавная буква "I" (Interface), а после используется стандарт **PascalCase.**

**\_underScore** - первый символ подчеркивания (\_), затем используется стандарт **camelCase.**

| Блок кода          | Стандарт именования                                                                                                                                     |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Private field      | underScore - всегда использовать терминологический префикс подчеркивания "\_"                                                                           |
| Public field       | camelCase                                                                                                                                               |
| Protected field    | PascalCase                                                                                                                                              |
| Internal field     | PascalCase                                                                                                                                              |
| Property           | PascalCase - никогда не использовать префиксы Get и Set                                                                                                 |
| Method             | PascalCase - глагол + существительное, максимум 7 параметров в методе, не злоупотреблять заглавными буквами, без сокращений, без подчеркиваний          |
| Class              | PascalCase - существительное или именованная фраза для имени, без префиксов, без подчеркиваний                                                          |
| Collection Classes | PascalCaseCollection - по аналогии с Class но добавляя постфикс "Collection"                                                                            |
| Delegate Classes   | PascalCaseDelegate - по аналогии с Class но добавляя постфикс "Delegate"                                                                                |
| Exception Classes  | PascalCaseException - по аналогии с Class но добавляя постфикс "Exception"                                                                              |
| Attribute Classes  | PascalCaseAttribute - по аналогии с Class но добавляя постфикс "Attribute"                                                                              |
| Interface          | IPascalCase - всегда использовать букву "**I"** в качестве префикса к названию интерфейса                                                               |
| Enumerations       | PascalCase - по аналогии с Class                                                                                                                        |
| Local variable     | camelCase                                                                                                                                               |
| Parameter          | camelCase                                                                                                                                               |
| Namespaces         | PascalCase - без подчеркиваний, разделять логические компоненты точками, не злоупотреблять заглавными буквами, не использовать то же имя что и у класса |
| Events             | PascalCase - наименовывать глаголами                                                                                                                    |

класс

static

constructor

указывать явно модификаторы доступа
