бокс на структурах при вызове ToString ()

Я часто задавался вопросом, происходит ли следующий сценарий в c #

Если у меня есть структура, но я неЯ явно переопределяю любой из методов, полученных из объекта, таких как ToString (), GetHashCode () и т. д., тогда, если я объявлю локальный экземпляр моего класса структуры и вызову 'Нанизывать()' на этом моя структура будет упакована, то есть CLR будет неявно преобразовывать это в объект в куче и затем вызывать ToString ()? Или достаточно умно знать, чтоНет реализации для этой структуры и игнорировать ее?

т.е.

public struct Vector2D
{
    public float m_x;
    public float m_y;


    ...... etc
}


void SomeFunc()
{
  Vector2D aVec = new Vector2D();
  Console.WriteLine(aVec.ToString()); // 

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

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