invalidcastexception未经处理,输入后c#错误

invalidcastexception未经处理,输入后c#错误,c#,math,C#,Math,我试图用一个简单的程序计算一个方程式,但当我试图运行我的代码时,我得到了这个异常 Unable to cast object of type 'System.Windows.Forms.TextBox' to type 'System.IConvertible'. 我不知道我做错了什么,这个等式看起来不错,但这就是产生错误的地方,这个等式我正试图编码 下面是我的代码 namespace WindowsFormsApplication1 { public partial class F

我试图用一个简单的程序计算一个方程式,但当我试图运行我的代码时,我得到了这个异常

Unable to cast object of type 'System.Windows.Forms.TextBox' to type 'System.IConvertible'.
我不知道我做错了什么,这个等式看起来不错,但这就是产生错误的地方,这个等式我正试图编码

下面是我的代码

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        double  r = 0;



        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            r = (((Math.Sqrt(2) * Convert.ToDouble(textBox4.Text)) /(2* Math.PI * Convert.ToDouble(textBox3.Text))) * (1/Convert.ToDouble(textBox2) +1/Convert.ToDouble(textBox1)) );
            label7.Text = "R1 = " + r.ToString() + " ohms/km";

        }
    }
}

你的问题是,在你的长队结束时有这样一个问题:

(1/Convert.ToDouble(textBox2) +1/Convert.ToDouble(textBox1))
这需要是
textBox2.Text
,因为不能将textbox对象转换为double


同样为了可读性,不在一行中进行所有转换是值得的,而是一次一个转换为单独的变量,然后使用这些变量。这也会使你不太可能遭受这种类型的问题,因为这样可以更清楚地知道哪里出了问题。

textBox2.Text!和文本框1。文本!小心