C# CodeDom Конвертировать между типами

Я пытаюсь использовать CodeDom для создания следующей строки кода:

object o = (object)bytes

Где "байты" представляет байтовый массив: byte[] bytes = null;

Я мог бы использовать метод VariableDeclaration или, возможно, даже метод CodeAssign, чтобы сгенерировать левую сторону этой строки, но как я могу создать правую сторону этой строки?

Я открыт для любых предложений - спасибо!

Evan

1 ответ

Решение

Эта форма обращения называется кастингом. Конверсия означает что-то вроде Convert.ToInt32("123"), или же int.Parse("123"),

Cast (Ваша точная линия object o = (object)bytes;)

var declaration = new CodeVariableDeclarationStatement()
{
    Name = "o",
    Type = new CodeTypeReference(typeof(object)),
    InitExpression = new CodeCastExpression(typeof(object), new CodeVariableReferenceExpression("bytes"))
};

Конвертировать (Мой пример преобразования object o = Convert.ToInt32("123"))

var declaration = new CodeVariableDeclarationStatement()
{
    Name = "o",
    Type = new CodeTypeReference(typeof(object)),
    InitExpression = new CodeMethodInvokeExpression(
        new CodeTypeReferenceExpression(typeof(Convert)),
        "ToInt32",
        new CodePrimitiveExpression("123"))
};
Другие вопросы по тегам