TGViewer
StepOne | Степан Минин StepOne | Степан Минин @steponeit · 3.26K subscribers
Post #218 2.04K
StepOne | Степан Минин Как в C# 11 появилась обобщённая математика ❓ 7 ноября при поддержке CUSTIS состоится MskDotNet Meetup #55, где я выступлю с докладом. В рамках доклада рассмотрим с нуля концепцию обобщённой математики, как она выглядит в C# 11, как могла выглядеть в предыдущих…
unmanaged constraint

Позавчера на докладе меня попросили прокомментировать этот фрагмент кода из ML NET.

В частности слушателя заинтересовало, что означает ограничение unmanaged.

Тогда ответить не вышло, честно не знал 😅

Однако я не я, если не разберусь в теме, и не напишу об этом пост 😁

Запоминаем - where T : unmanaged означает, что тип T это что-то из списка ниже:

⭐️ sbyte, byte, short, ushort, int, uint, long, ulong, nint, nuint, char, float, double, decimal, bool

🌴 любой enum тип

🎁 любой тип указателя (например void*)

👽 любой пользовательский struct с полями только из unmanaged типов

Иными словами такое ограничение запрещает типу иметь внутри себя ссылки, управляемые GC, то есть это не ссылочный тип, или тип без членов ссылочного типа на любом уровне вложенности.
  • 👍 46
  • ❤ 2
  • 🔥 2
More from @steponeit
  1. Sep 29, 2026Рассказал как автоматизировал сборку лексера компилятором для своего языка программировани…
  2. Sep 28, 2026Пошутил про джавистов в прямом эфире 😅 Шарпизм победил окончательно и бесповоротно!
  3. Sep 27, 2026Post #860
  4. Sep 25, 2026Рассказал как я добавил в HydraScript объекты и методы без классов и сделал протоколы. Стр…
  5. Sep 22, 2026Post #858
  6. Sep 21, 2026Post #857
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →