jit*_*arg 3 .net c# memory-management variable-types winforms
我和我的队友就此进行了简短的讨论.他说,如果我在文本框中输入一个数字,并尝试稍后使用textbox.text或val(textbox.text)来使用该值,我将不需要将该值解析为整数.据他说,如果text属性值是全数,你可以直接得到整数值,而不是字符串.
所以,如果我有textBox1.Text = "12345",那么下次,如果我使用intABC = textBox1.Text,它不会抛出错误.这样对吗?C#或其他.Net语言是否进行了隐式转换?此外,代码存储"12345"为字符串还是整数?这个值占用多少内存,5个字符为5个字节,整数为2个字节?
dig*_*All 14
TextBox.Text 将文本保持为一个简单的字符串,它不关心字符串的真正"含义".
然后,如果你想要返回你的数字,你需要解析字符串,因此不允许隐式或显式转换为int(或者更好的是,如果你这样做会抛出异常......).
关于大小,该文本存储为UNICODE(UTF-16)字符串,因此每个字符2到4个字节(取决于字符).
您可以使用以下代码轻松测量大小(只是字符串的大小,而不会因参考大小等而产生开销):
int numBytes = Encoding.Unicode.GetByteCount(stringToMeasure);
Run Code Online (Sandbox Code Playgroud)
要获取更多有关字符串,Unicode和编码看看这里,这里和这里.
你的朋友错了,它会让编译器不高兴,编译器甚至不会为你自动转换它.TextBox的Text属性是string类型.检查一下
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.text.aspx
| 归档时间: |
|
| 查看次数: |
561 次 |
| 最近记录: |