private Expression GetTypeDefaultLiteralExpression(TypeReference arrayElementType) { if (arrayElementType.FullName == "System.Boolean") { return new LiteralExpression(false, typeSystem, null); } if (arrayElementType.IsIntegerType()) { return new LiteralExpression(0, typeSystem, null); } TypeDefinition arrayElementTypeDef = arrayElementType.Resolve(); if (arrayElementTypeDef == null) { return new DefaultObjectExpression(arrayElementType, null); } if (arrayElementTypeDef != null && arrayElementTypeDef.IsEnum) { return EnumHelper.GetEnumExpression(arrayElementTypeDef, new LiteralExpression(0, typeSystem, null), typeSystem); } if (!arrayElementTypeDef.IsValueType) { return new LiteralExpression(null, typeSystem, null); } return new DefaultObjectExpression(arrayElementType, null); }