Boxing/Unboxing и Nullable?

Хорошо: если я правильно понимаю, вы хотите переместить один конец стержня вверх, в то время как другой остается там, где он есть, как теннисная бита? в то время как другой остается там, где он есть, я бы предложил использовать родительский объект. Имейте родительский объект (Parent_Rod), сделайте прут дочерним по отношению к вышеупомянутому родителю.

Теперь установите, чтобы корень Child_Rod, который вы не хотите перемещать, находится в корне Parent_Rods. Таким образом, неиспользуемый конец вашего стержня должен быть в [0, 0, 0,] родителя. Тогда вращайте не сам объект стержня, а его родителя. Таким образом, вращение будет происходить вокруг преобразования родителя, где находится один конец вашего стержня.

Относительно силы столкновения: вы не должны использовать гравитацию на вашем стержне и делать твердое тело кинематическим. Таким образом, вы можете легко контролировать вращение родителя с помощью скрипта, в то время как сам стержень не подвержен столкновениям.

Надеюсь, это поможет, надеюсь, я правильно понял вопрос.

8
задан Rogez Sanchez 17 December 2008 в 14:56
поделиться

3 ответа

То, что это говорит, является этим, если Вы делаете:

int? x = 5;
object y = x; // Boxing

Вы заканчиваете с помещенным в коробку int, не помещенное в коробку Nullable<int>. Так же, если Вы делаете:

int? x = null; // Same as new Nullable<int>() - HasValue = false;
object y = x; // Boxing

Затем y заканчивается как нулевая ссылка.

12
ответ дан 5 December 2019 в 07:13
поделиться

То, что это означает, является этим, если Вы делаете:

int? i = 5;
object o = i;

это - "интервал" (5), который упаковывается, не "интервал?" (5). Если x был пустым (! HasValue), o был бы пустым, не поле вокруг пустого "интервала?"

Затем, когда Вы распаковываете:

i = (int?)o;

Если o является пустым, я становлюсь пустым "интервалом?"; иначе, эти 5 распаковывается и используется для создания "нового интервала? (5)".

В основном Вы не были должны (за исключением обмана) смочь получить помещенное в коробку nullable<T> непосредственно - только помещенное в коробку T

8
ответ дан 5 December 2019 в 07:13
поделиться

Если a Nullable<T> null, это будет упаковано как нулевая ссылка и не будет вести себя как помещенный в коробку тип значения с HasValue = true.

На самом деле, для реализования этой опции требовалось, что тот CLR внутренне поддерживает Nullable<T> введите и рассматривайте его по-другому. Разработчики не могут записать свой собственный тип, который работает как Nullable<T>.

Стоит отметить, что это было одной из последней.NET 2,0 функции. В ранних бетах, Nullable<T> ведший себя точно так же, как нормальная структура. В финальной версии это было изменено на поле к нулевой ссылке. Это изменение конкретно повреждало для SQL Server команду CLR, и они должны были изменить некоторый фундаментальный материал для него.

3
ответ дан 5 December 2019 в 07:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: