文本框是否将全数字文本另存为长整数或字符串?

| 我与队友对此进行了简短的讨论。他说,如果我在文本框中输入数字,然后稍后再使用textbox.text或val(textbox.text)尝试使用该值,则无需将该值解析为整数。据他介绍,如果文本属性值是全数字,则可以直接将其值获取为整数而不是字符串。 因此,如果我有
textBox1.Text = \"12345\"
,那么下一次,如果我使用not1ѭ,它将不会引发错误。这样对吗? C#或其他.Net语言会进行隐式转换吗?另外,代码会将“ 2”存储为字符串还是整数?这个值将占用多少内存?5个字符5个字节,整数2个字节?     
已邀请:
TextBox.Text
将文本保留为简单的字符串,它并不关心字符串的真正“含义”。 然后,如果要返回数字,则需要解析字符串,因此不允许将隐式或显式强制转换为int(或者更好,如果这样做则将引发异常...)。 关于大小,该文本存储为UNICODE(UTF-16)字符串,因此每个字符2到4个字节(取决于字符)。 您可以使用以下代码轻松地测量大小(仅是字符串的大小,而不会由于引用大小等而产生开销):
int numBytes = Encoding.Unicode.GetByteCount(stringToMeasure);
要查找有关字符串,Unicode和编码的更多信息,请在此处,此处或此处查看。     
您的朋友错了,这会使编译器不满意,编译器甚至不会为您自动转换。 TextBox的Text属性的类型为字符串。检查这个 http://msdn.microsoft.com/zh-CN/library/system.web.ui.webcontrols.textbox.text.aspx     
关于其他语言的问题;如果未启用“选项严格”,VB.NET将允许这样做。如果输入不是完全数字的,它将也允许此分配,从而导致运行时异常。     
如果您知道只使用数字值,请尝试使用NumericUpDown控件。 然后,您可以使用
Value
属性来获取/设置数值(十进制)。   NumericUpDown控件包含一个数字值,可以通过单击该控件的上或下按钮来增加或减少。除非将ReadOnly属性设置为true,否则用户也可以输入一个值。     

要回复问题请先登录注册