将字符串值分配给整数变量时出错

时间:2016-09-19 06:50:29

标签: c#

初始化变量并为其赋值,并在运行时指定一个字符串值,它会给出错误。

var _formatedBillCode = 101; 

_formatedBillCode="20160919_101_ank"; // assigning string value

4 个答案:

答案 0 :(得分:3)

var会在编译时推断出它的类型。与JS不同,var在您首先使用整数定义它时,在编译时推断出它的类型。

稍后如果你改变它的类型移动它会引发错误,因为在编译时,它推断的第一个类型是int。您无法将其更改为string

在这种情况下,如果您需要动态那么多,请将dynamic类型用于您的目的:

dynamic a = 1;
Console.WriteLine(a);

// Dynamic now has a different type.
a = new string[0];
Console.WriteLine(a);

// Assign to dynamic method result.
a = Test();
Console.WriteLine(a);

// Use dynamic field.
_y = "carrot";

// You can call anything on a dynamic variable,
// ... but it may result in a runtime error.
Console.WriteLine(_y.Error);

在你的情况下;

dynamic_formatedBillCode = 101; 

_formatedBillCode="20160919_101_ank"; // assigning string value

答案 1 :(得分:1)

使用dynamic将数据类型解析为运行时。

    dynamic _formatedBillCode = 101; 

    _formatedBillCode="20160919_101_ank";

答案 2 :(得分:0)

首先你将“_formatedBillCode”声明为int,之后你不能将类型更改为字符串,“var”不是动态的,它只是表示类型。 你可以用“动态”代替“var”。

答案 3 :(得分:0)

您正在尝试将字符串值分配给int,如果不进行强制转换,它将无法工作。这会将第二个变量指定为一个字符串,并将整数强制转换为字符串:

var _formatedBillCodeInt = 101; 

var _formatedBillCode="20160919_" + _formatedBillCodeInt.ToString() + "_ank"; // assigning string value

或者我误解了这个问题?