> For the complete documentation index, see [llms.txt](https://shuras-organization.gitbook.io/csharpunitystyleguide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://shuras-organization.gitbook.io/csharpunitystyleguide/klassy.md).

# Классы

* Для всех классов, от которых не подразумевается возможность наследования используем модификатор *<mark style="color:blue;">`sealed`</mark>*.
* Количество аргументов конструктора недолжно превышать 10, иначе используйте [**DTO**](/csharpunitystyleguide/data-transfer-object-dto.md).
* Классы, которым нужно обеспечить неизменяемость, а так же используемые для сравнения в качестве ключа(или чего-то в этом роде), заменяются на [*`record`*](https://habr.com/ru/amp/publications/675560/).
* Обобщенные классы, по возможности, должны иметь модификатор *<mark style="color:blue;">`where`</mark>* с указанием родительских типов.

```csharp
public class AGenericClass<Т> where T : IComparable<Т> { }; 
```
