C# 为什么要使用Parse将字符串转换为int?
我做了一个小计算器:C# 为什么要使用Parse将字符串转换为int?,c#,C#,我做了一个小计算器: private void button1_Click(object sender, EventArgs e) { int input1 = int.Parse(textBox1.Text); int input2 = int.Parse(textBox2.Text); int Result = input1 + input2; textBox3.Text = Result.ToString(); } 为什么我不能只做textBox3.Tex
private void button1_Click(object sender, EventArgs e)
{
int input1 = int.Parse(textBox1.Text);
int input2 = int.Parse(textBox2.Text);
int Result = input1 + input2;
textBox3.Text = Result.ToString();
}
为什么我不能只做
textBox3.Text=Result代码>当我之前已经告诉他们结果是int-type时?听起来您可能想从C#数据类型开始。至于你的问题<代码>文本框。文本
的类型为字符串
。查看MSDN文章,了解您正在使用的不同控件及其属性,例如TextBox.Text上的此控件
为什么我不能只做textBox3.Text=Result;我已经告诉他们了
前一行中的结果是否为int类型
即使您“告诉”结果将是int类型,编译器也需要知道如何将字符串解释/转换为int
int.Parse就是这样做的一种方法。textBox3.Text
是字符串的一种,而Result
是int
的一种,在代码中,您将int
值赋给字符串,这是错误的。您需要将一种类型转换为另一种类型 当我需要解释数据类型时,我经常使用形状的类比
数据类型是形成指定类型变量行为的形状。创建给定类型的变量时,该变量包含该类型的描述和值。具有相同形状的变量可以在运算符的帮助下连接在一起(例如+
)
来自不同类型(形状)的两个变量不能直接连接在一起-它们需要转换器/包装器
例如,转换器从形状三角形生成一个圆,或包装器将三角形遮罩为一个圆
回到你的例子<代码>文本框
控件只能保存数据类型字符串
,这意味着它们与int
的形状不兼容。您已经使用intinput1=int.Parse(textBox1.Text)将字符串的内容转换为int
代码>
这就是为什么不能简单地将Result
变量分配给Text
属性的原因-它们的形状不同,因此需要使用ToString()
方法将int
转换回string
。您还可以编写textBox3.Text=(input1+input2).ToString()代码>
形状类比可以用来理解参数传递——只要知道方法的签名intadd(inta,intb)
,就可以确切地知道调用方法(两个int
)时需要放置什么,以及结果是什么类型(一个int
)。例如stringresult=add(1,2)由于签名不符合预期,result
应为int
类型才能工作(int result=add(1,2);
)或对add(1,2)
的调用应转换为string
(string result=add(1,2).ToString();
)
类和对象也是如此——类是一种自定义数据类型,因此是一种自定义形状。只要一个类(对象)的两个实例具有相同的形状,它们就可以相互连接或指定
这是一个非常简单的解释(但在过去它仍然帮助了我的学员),因此请慢慢看一下C#MSDN文档,以获得对数据类型的全面解释。您的textBox3。Text
是字符串类型。这就是您必须将结果
转换为字符串的原因。这些是尽快学习的基本规则。例如,尝试在其中一个输入文本框中键入非数字的内容。这会给我一个错误,因为输入是int,我无法给它字符串类型。如果要修复它,我可以做,但它都是文本框。文本是字符串吗?即使结果是数字?@kariyzh Yes-所有文本框都使用字符串
。“1”
和1
之间有一个区别-第一个是ascii表示,第二个是1
的实际值。有关更多信息,请参阅此部分-如果您仍然感到困惑,我强烈建议您阅读一些初学者书籍或阅读教程