Все ли приведения C # приводят к упаковке / распаковке

Мне любопытно узнать, приводят ли все приведения в C # к боксу, и если нет, все ли приведения являются дорогостоящей операцией?

Пример взят изБокс и распаковка (Руководство по программированию в C #)

    int i = 123;
    // The following line boxes i.
    object o = i;  

Эта строка, очевидно, вызывает бокс (оборачивая тип int как объект). Это операция, которая считается дорогостоящей, поскольку она создает мусор, который будет собираться.

А как насчет приведений из 2 различных типов ссылочных типов? какова стоимость этого? это можно правильно измерить? (по сравнению с предыдущим примером)

Например:

public class A
{
}

public class B : A
{
}

var obj = new B();
var obj2 = (A)obj; // is this an "expensive" operation? this is not boxing

Ответы на вопрос(3)

Ваш ответ на вопрос