【问题标题】:Converting Distance using C#使用 C# 转换距离
【发布时间】:2018-09-03 08:54:31
【问题描述】:

程序问题:我试图在用户输入数据后从一种距离类型转换为另一种距离。用户必须从一个列表中选择以转换为距离上的另一个列表。例如,在一个列表中选择英寸以转换为另一个列表中的码。

我的代码:

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 Distance_Converter
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void ConvertButton_click(object sender, EventArgs e)
        {
            //int Inches = 1;
            //int Feet = 12;
            //int Yards = 36;
            int distance_to_convert;
            string lengthOption1;
            string lengthOption2;
            int inches_feet;
            int inches_yard;

            lengthOption1 = FromListBox.SelectedItem.ToString();
            lengthOption2 = ToListBox.SelectedItem.ToString();
            distance_to_convert = int.Parse(distancetoconvertTextBox.Text);

            if ((FromListBox.SelectedIndex) != -1 && (ToListBox.SelectedIndex) != -1)   
            {
                switch (lengthOption1)
                {
                    case "Inches":
                        if (lengthOption2 == "Inches")
                        {
                            //object distancetoconvert = null;
                            ConvertedDistanceTextBox = distance_to_convert.ToString();
                        }
                        else if (lengthOption2 == "Feet")
                        {
                            inches_feet = distance_to_convert / 12;
                            ConvertedDistanceTextBox = inches_feet.ToString();
                        }
                        else if (lengthOption2 == "Yards")
                        {
                            inches_yard = distance_to_convert / 36;
                            ConvertedDistanceTextBox = inches_yard.ToString();
                        }
                        break;
                    case "Feet":
                        if (lengthOption2 == "Inches")
                        {
                            int feet_inches = distance_to_convert * 12;
                            ConvertedDistanceTextBox = feet_inches.ToString();
                        }
                        else if (lengthOption2 == "Feet")
                        {
                            ConvertedDistanceTextBox = distance_to_convert.ToString(); ;
                        }
                        else if (lengthOption2 == "Yards")
                        {
                            int feet_yard = distance_to_convert / 3;
                            ConvertedDistanceTextBox = feet_yard.ToString();
                        }
                        break;

                    case "Yards":
                        if (lengthOption2 == "Inches")
                        {
                            int Yards_inches = distance_to_convert * 36;
                            ConvertedDistanceTextBox = Yards_inches.ToString();
                        }
                        else if (lengthOption2 == "Feet")
                        {
                            int Yards_feet = distance_to_convert * 3;
                            ConvertedDistanceTextBox = Yards_feet.ToString();
                        }
                        else if (lengthOption2 == "Yards")
                        {
                            ConvertedDistanceTextBox = distance_to_convert.ToString(); ;
                        }
                        break;
                }
            }

        }
        private void Exitbutton_click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}

我的困境:代码看起来在各个方面都是正确的。但是,当我尝试多次从 int 转换为 string 时,IDE 给了我一条红线。代码不会编译并产生构建错误。我在想我将不得不创建一个单独的类来从 int 转换为 string。

错误状态:“错误 CS0029 无法将类型 'string' 隐式转换为 'System.Windows.Forms.TextBox'”

它出现在第 42、47、52 行或任何以 ConvertedDistanceTextBox = 开头的行。

抱歉,我是编码新手,我正在努力学习。而且我对stackoverflow比较陌生。

【问题讨论】:

  • 您应该尝试阅读错误并理解它的含义。在这种情况下,我假设您正在尝试将计算出的值分配给 TextBox。您应该分配 TextBox 的 Text 属性而不是 IE:ConvertedDistanceTextBox.Text = ......;
  • 您是否认为您看到的错误无关紧要并且没有发布它们?这就是我投票结束的原因:寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码
  • 您好,欢迎来到 StackOverflow。摆动的红线表示错误。如果您将鼠标悬停在它们上方,工具提示将解释错误(或者,尝试编译您的程序,错误消息将在“输出”窗口中列出)。如果您向我们扔代码并要求我们自己弄清楚您的整个代码中的哪些行出于任何原因会产生摇摆不定的红线,这可不好玩;-)
  • @ABerrio,不要在 cmets 中解释您的问题。编辑和改进问题本身。将有关您的问题的重要信息深埋在 cmets 中是一个坏主意...
  • @Steve,elgonzo, eser,;感谢您提供有用的提示。以后一定会以更好的形式正确提问。

标签: c# string if-statement build


【解决方案1】:

您应该将字符串值设置为文本框的文本属性

ConvertedDistanceTextBox.Text = inches_yard.ToString();

【讨论】:

  • 谢谢你。我很欣赏这个。我完全忽略了这个小错误。 @垫子
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-09-22
  • 2015-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-10
  • 1970-01-01
相关资源
最近更新 更多