Неявный unbox
От: BokiyIS  
Дата: 14.07.08 21:58
Оценка:
interface IFoo
{
  void FooMethod();
}

struct FooStruct: IFoo
{
  public void FooMethod()
  {
    this = new FooStruct():
  }
}

...
FooStruct fooStruct = new FooStruct();
((IFoo)fooStruct).FooMethod();
...


Подскажите пожалуйста, происходит ли неявный unbox при вызове метода FooMethod через интерфейс IFoo?
В структурах ведь this ведет себя как ref параметр (кроме конструкторов), а чтобы получить ссылку на запакованное значение, его необходимо распаковать. Получается, что в любых вызовах виртуальных методов и методов интерфейсов у
запакованных значений, происходит неявная распаковка. Так написано в книге Accelerated C# (page 93). Но я решил спросить у знатоков, потому что:
1. "Плаваю" в этом вопросе.
2. В книге есть ошибки.
3. Искал в спецификации и не нашел.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.