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"))
};