Примитивные типы | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Читая описание типа Type наткнулся на свойство msdn.microsoft.com . В описании сказано:
Цитата: Даже есть список:
В списке нет ни одного ссылочного или пользовательского типа. Вопрос - по какому принципу эти типы отнесены к примитивным? Я правильно понимаю, что все значимые предопределённые (объявленные в CLR) типы являются примитивными? |
Re: Примитивные типы | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Хотя, Decimal - значимый предопределённый тип, в этот список почему то не попал.
Опять таки, IntPtr - это структура, т.е. пользовательский тип. Исправлено 1 раз(а). Последнее : S-type, 08.03.17 17:39 |
Re: Примитивные типы | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Начнём с того что MS не даёт строгого определения тому что же они считают за primitive type. Чем он таким особенно "примитивен" Тупо дают список и всё.
Да, далеко НЕ ВСЕ системные value типы являются примитивными. Банально все generic-и не являются примитивными, тогда как тот же Nullable<T> вполне себе структура и вполне себе "системная". IntPtr это не "пользовательский" тип. Все прочие перечисленные типы точно такие же "структуры" как и этот тип. "Структура" в данном случае значит то что экземпляр типа передаётся "по значению" - т.е. вызываемый метод получает копию значения, и даже новая переменная при присваивании ей значения из существующей тоже получает копию значения. Это совсем не аналог паскалевского или сишного понятия "структуры". ------------------ WBR, Igor |
Re: Примитивные типы | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Типа "мы решили, что именно эти типы будут примитивными", правила нет и надо просто это выучить... Грустно.
На msdn.microsoft.com сказано:
Если что то создано с помощью ключевого слова struct разве это не структура? |
Re: Примитивные типы | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Хотя:
А это ведь не структуры. То есть IntPtr -это полноценный встроенный (предопределённый) тип.
Что же тогда "пользовательский тип"? |
Re: Примитивные типы | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
И булево значение и все числа, и даты, и "символ" aka System.Char - структуры. Структура в понятиях C# это то что называется value type в понятиях CLR (точнее CTS). Она совершенно не обязана быть "чем-то состоящим из нескольких полей".
"Пользовательские типы" - ну это те что программист в своей программе определяет Язык C# это не более чем "человеческая" надстройка над языком IL. А там как раз уже видно что это за зверь "primitive type". На таком низком уровне уже видно что есть какое-то к примеру 4-х байтовое значение, которым можно манипулировать как "просто значением" - да тупо складывать их - не вызывая никаких методов никаких типов. Вот всё то что в IL имеет особую (прямую) обработку это и есть "примитивные типы". В более высокоуровневом языке типа C# этого примитивизма уже не видно - там остаются только "типы" - а то что компилятор их по особому обрабатывает - ну это иногда полезно знать, хотя в общем и целом это не влияет на процесс написания кода weblogs.asp.net flylib.com ------------------ WBR, Igor |
© 2000-2024 Fox Club  |