C#CodeDom在类型之间转换

时间:2011-07-18 12:41:54

标签: c# types codedom

我正在尝试使用CodeDom生成以下代码行:

object o = (object)bytes

其中“bytes”表示字节数组:byte [] bytes = null;

我可以使用VariableDeclaration方法甚至可能使用CodeAssign方法来生成此行的 left 侧,但是如何创建此行的右侧?

我愿意接受任何建议 - 谢谢!

埃文

1 个答案:

答案 0 :(得分:1)

这种转换形式称为铸造。转化意味着Convert.ToInt32("123")int.Parse("123")

投放您的确切行 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"))
};