gpt4 book ai didi

c# - 我正在使用C#设计计算器并且出现编译错误CS0029

转载 作者:行者123 更新时间:2023-12-02 10:51:09 26 4
gpt4 key购买 nike

因此,对于我的家庭作业,我被要求设计一个功能齐全的计算器,该计算器既可以接受按键,也可以接受按钮点击,但是对于数字0-9按钮单击事件,我会收到编译错误消息:CS0029:无法将类型'int'隐式转换为'string'

这是代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Calculator
{
public partial class Form1 : Form
{
private String calculatedNumber; // Stores numbers in string form
private Boolean dot = false; // Falg: to control when a dot can be placed in a number
public Form1()
{
InitializeComponent();
}

private void BtnZero_Click(object sender, EventArgs e) //adds 0 to string
{
//calculatedNumber = Convert.ToString(0);
if (calculatedNumber = 0)
{

LblDisplay.Text=calculatedNumber;
}
else
{

}
}

private void BtnOne_Click(object sender, EventArgs e) //adds 1 to string
{

if (calculatedNumber = 1)
{
calculatedNumber = 1.ToString();
LblDisplay.Text = calculatedNumber;
}
else
{

}
}

private void BtnTwo_Click(object sender, EventArgs e) //adds 2 to string
{

if (calculatedNumber = 2)
{
LblDisplay.Text = calculatedNumber;
}
else
{

}
}

private void BtnThree_Click(object sender, EventArgs e) //adds 3 to string
{

if (calculatedNumber = 3)
{
LblDisplay.Text = calculatedNumber;
}
else
{

}
}

private void BtnFour_Click(object sender, EventArgs e) //adds 4 to string
{

if (calculatedNumber = 4)
{
LblDisplay.Text = calculatedNumber;
}
else
{

}
}
private void button5_Click(object sender, EventArgs e) //adds 5 to string
{

if (calculatedNumber = 5)
{
LblDisplay.Text = calculatedNumber;
}
else
{

}
}
private void BtnSix_Click(object sender, EventArgs e) //adds 6 to string
{

if (calculatedNumber = 6)
{
LblDisplay.Text = calculatedNumber;
}
else
{

}
}

private void BtnSeven_Click(object sender, EventArgs e) //adds 7 to string
{

if (calculatedNumber = 7)
{
LblDisplay.Text = calculatedNumber;
}
else
{

}
}

private void BtnEight_Click(object sender, EventArgs e) //adds 8 to string
{

if (calculatedNumber = 8)
{
LblDisplay.Text = calculatedNumber;
}
else
{

}
}

private void BtnNine_Click(object sender, EventArgs e) //adds 9 to string
{
calculatedNumber = 9.ToString();
if (calculatedNumber = 9)
{

LblDisplay.Text = calculatedNumber;
}
else
{

}
}

private void BtnDot_Click(object sender, EventArgs e) //adds . to string
{
if (!dot)
{
calculatedNumber += ".";
dot = true;
}

LblDisplay.Text = calculatedNumber;
}

我究竟做错了什么?
PS:我是C#新手

最佳答案

您正在从所有if语句中收到错误消息“无法将类型'int'隐式转换为'字符串'”。您应该传递一个返回bool的表达式。但是,您试图将一个int分配给calculatedNumber这是一个字符串。但是,您的意思是检查是否等于==而不是=的相等性。

将所有if语句更改为:

if (calculatedNumber == "0") //or whatever number

但是,在您的代码中 calculatedNumber似乎从未在任何地方设置,因此永远都不会成立。

由于每个按钮都有 Action 监听器,因此整个 if部分是多余的。您可以拥有:
 private void BtnOne_Click(object sender, EventArgs e)   //adds 1 to string
{
LblDisplay.Text = "1";
}

但是,这似乎仍然不是您想要的功能,因为每次单击新数字时它都会替换数字,因此您可能希望像这样添加它:
private void BtnOne_Click(object sender, EventArgs e)   //adds 1 to string
{
LblDisplay.Text = LblDisplay.Text + "1";
}

关于c# - 我正在使用C#设计计算器并且出现编译错误CS0029,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58416470/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com