初始化變量和int值分配給它並在運行時分配一個字符串值它給錯誤。錯誤分配字符串值整數變量
var _formatedBillCode = 101;
_formatedBillCode="20160919_101_ank"; // assigning string value
初始化變量和int值分配給它並在運行時分配一個字符串值它給錯誤。錯誤分配字符串值整數變量
var _formatedBillCode = 101;
_formatedBillCode="20160919_101_ank"; // assigning string value
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
非常感謝你。這鏈接也很有幫助[鏈接](http://www.c-sharpcorner.com/uploadfile/b1df45/var-vs-dynamic-keywords-in-c-sharp) –
我發現[this](https://blogs.msdn.microsoft.com/jennifer/2010/06/16/what-is-the-difference-between-var-and-dynamic-in-c/)更多簡明扼要。 :) –
使用dynamic將數據類型解析爲運行時。
dynamic _formatedBillCode = 101;
_formatedBillCode="20160919_101_ank";
正如你首先聲明「_formatedBillCode」如int,你不能後更改類型爲字符串,「無功」不是動態的,它只是代表類型。 你可以使用「動態」而不是「var」。
您試圖將一個字符串值賦給一個int,這不會工作,而鑄造的。這將賦予第二個變量與整數字符串轉換爲字符串:
var _formatedBillCodeInt = 101;
var _formatedBillCode="20160919_" + _formatedBillCodeInt.ToString() + "_ank"; // assigning string value
還是我誤解了問題?
'var'在編譯時解析,而不是運行時。你不可能改變它的初始類型推斷。 –
在c#中,「var」與javascript不同。這不是動態 –