Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2015, 12:06   #1
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию Что за ValueType ?

Перечитываю книгу Эндрю Троелсена дабы закрепить информацию. Наткнулся на таблицу:

1.jpg

От чего ValueType происходит на самом деле?
Я понимаю, что все типы в языке С# являются производными от System.Object. Но каким боком так приходится этот ValueType ?
Как он порождается?
например, любой тип создаётся при помощи оператора new:
int i = new int().
Обычные переменные так вообще без доп. операторов:
bool b = false;

Тогда где участвует этот ValueType? Там про это не сказано. Хотя различия как сказано дальше есть в том, что потомки ValueType имею предсказуемое время жизни.
hoz вне форума Ответить с цитированием
Старый 09.05.2015, 12:21   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
От чего ValueType происходит на самом деле?
Ну это скорее всего производная от вариантного типа. А уже сам Объект наследует его. Ведь есть же в шарпее тип var, вот возможно он как раз на такой случай и намекает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.05.2015, 12:25   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Ведь есть же в шарпее тип var
Нету, это синтаксический сахар, при компиляции меняется на настоящий тип. Это ж слово только при инициализации значения локальной переменной работает (когда понятен тип), нельзя просто так объявить неинциализированную var переменную и т.п. Ну еще есть анонимные типы (https://msdn.microsoft.com/en-us/library/bb397696.aspx), там тоже var нужен, но там тоже просто имя генерируется при компиляции.

Как и auto в С++.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 09.05.2015 в 12:34.
Alex11223 вне форума Ответить с цитированием
Старый 09.05.2015, 12:35   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
при компиляции меняется на настоящий тип.
Неа. Не при компиляции. А при исполнении. И я не согласен что это сахар.
Ну хорошо, допустим пример неудачный привел, но смысл в том что ValueType - вариантная основа.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.05.2015, 12:42   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что при исполнении?
https://msdn.microsoft.com/en-us/library/bb384061.aspx
Цитата:
It is important to understand that the var keyword does not mean "variant" and does not indicate that the variable is loosely typed, or late-bound. It just means that the compiler determines and assigns the most appropriate type.
Еще есть dynamic, вот там как-то при исполнении методы определяются, но оно для другого используется, для общения со всякими COM'ами и javascript'ами.

(а вопрос автора я что-то не понял)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 09.05.2015 в 12:47.
Alex11223 вне форума Ответить с цитированием
Старый 09.05.2015, 13:20   #6
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
(а вопрос автора я что-то не понял)
Я имею ввиду, от чего является производным ValueType ?
hoz вне форума Ответить с цитированием
Старый 09.05.2015, 13:36   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
var keyword does not mean "variant"
Ну значит я не так понял для чего это ключевое слово нужно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.05.2015, 13:59   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от hoz Посмотреть сообщение
Я имею ввиду, от чего является производным ValueType ?
От Object.

А то, что ValueType копируются по значению и т.п., видимо CLR разруливает.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что получиться из этого кода? или что мы ищем через него? kroatoani Общие вопросы Delphi 5 23.10.2010 17:18
Что нужно знать (сделать), что бы прога запускалась в Виндос 7 и Виста marina15056 Помощь студентам 19 24.08.2010 11:29
Товарищи модераторы за что удалили мою Тему? Или я что то не втыкаю!? Олег Егоров Помощь студентам 0 19.05.2010 19:39
Как узнать что в содержимое буфера обмена добавилось что либо? zotox Общие вопросы Delphi 2 15.09.2009 12:07