Информация об изменениях

Сообщение Re[5]: Передать this в виде object от 18.03.2024 11:50

Изменено 18.03.2024 11:51 drVanо

Re[5]: Передать this в виде object
Здравствуйте, _FRED_, Вы писали:

S>>Задачу-то вы какую решаете?


_FR>Рискну предполдожить, что у топикстартера есть разные типы структур, которые хочется (или нужно)

менять в одном единственном методе и передавать эти структуры соответственно приходится унифицированно через "object".
_FR>Тогда мог бы подойти свой "Variant" c ref-ссылками разного типа.

Почти угадали. Мы занимаемся рахработкой продукта, который позволяет "вируализировать" CIL команды и выполнять их на собственном интерпретаторе. Поэтому есть проблема с передачей ref аргументов (в том числе и this у ValueType) в унифицированном виде. Сейчас это выглядит так:

public void Move(int a, int b)
{
    object[] array = new object[]
    {
        this,
        a,
        b
    };
    try
    {
        new VirtualMachine().Invoke(array, 10809);
    }
    finally
    {
        this = (Program.Point)array[0];
    }
}
Re[5]: Передать this в виде object
Здравствуйте, _FRED_, Вы писали:

S>>Задачу-то вы какую решаете?


_FR>Рискну предполдожить, что у топикстартера есть разные типы структур, которые хочется (или нужно) менять в одном единственном методе и передавать эти структуры соответственно приходится унифицированно через "object".

_FR>Тогда мог бы подойти свой "Variant" c ref-ссылками разного типа.

Почти угадали. Мы занимаемся рахработкой продукта, который позволяет "вируализировать" CIL команды и выполнять их на собственном интерпретаторе. Поэтому есть проблема с передачей ref аргументов (в том числе и this у ValueType) в унифицированном виде. Сейчас это выглядит так:

public void Move(int a, int b)
{
    object[] array = new object[]
    {
        this,
        a,
        b
    };
    try
    {
        new VirtualMachine().Invoke(array, 10809);
    }
    finally
    {
        this = (Program.Point)array[0];
    }
}