c#无法将'System.Windows.Forms.Label'类型的对象强制转换为'System.Windows.Forms.TextBox'

dac*_*glu 3 c# casting

我无法找到解决此错误的任何内容:/我尝试将2个字母组合(例如aa,ba,cb)设置为乘数(aa*3 = 4*3 ba*2 = 3,5*2).我的代码是;

string[] dersler = new string[9];
    double[] kredi = new double[9];
    double[] krediSonuclari = new double[9];

    double derscarp(double s1, double s2)
    {
        return s1 * s2;
    }
    private void button1_Click(object sender, EventArgs e)
    {

        int i=0;
        int j = 0;
        foreach (TextBox item in Controls)
        {
            if (item.Name.Substring(0,7)=="txtders")
            {
                dersler[i] = Convert.ToString(item.Text);
                i++;
            }
        }
        foreach (TextBox item in Controls)
        {
            if (item.Name.Substring(0, 8) == "txtkredi")
            {
                kredi[j] = Convert.ToDouble(item.Text);
                j++;
            }
        }

        double toplam =0;
        for (int k = 0; k < 9; k++)
        {
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 20

foreach (TextBox item in Controls)
Run Code Online (Sandbox Code Playgroud)

Controls包含一些不是文本框的控件.
您的foreach语句告诉编译器将集合中的每个项目转换为TextBox,这将无效.

相反,您可以调用.OfType<TextBox>(),它将返回仅包含TextBox实例的集合的已过滤子序列.