如何在c#中转换长度
本文关键字:转换 | 更新日期: 2023-09-27 18:09:15
我正在尝试设计一个带有组合框的长度转换计算器,因此当用户从组合框列表中选择要执行的转换时,应用程序会相应地修改指示" from "answers" to "长度的标签。当用户输入"from"长度并单击计算按钮时,程序应执行转换并在文本框中显示结果。
应用程序应该处理以下转换:
Miles to Kilometers 1 mile = 1.6093 kilometers
Kilometers Miles 1 kilometer = 0.6214 miles
Feet Meters 1 foot = 0.3048 meters
Meters Feet 1 meter = 3.2808 feet
Inches Centimeters 1 inch = 2.54 centimeters
Centimeters Inches 1 centimeter = 0.3937 inches
应用程序应该检查用户输入的长度,以确保它是一个有效的十进制值。
我想我应该使用矩形数组来存储转换信息。但我有几个问题。
如何根据用户从组合框中选择的内容更改标签?
我应该为组合框设置什么文本属性?
我将为数组使用什么值类型?转换方程是数组的成员吗?
我应该在计算按钮或组合框下输入这个吗?
我对编程很陌生(很明显)。任何帮助都太好了!谢谢!
卡莉我建议您定义一个Hashtable。关键将是转换类型,例如"MK"英里到公里和值将是转化率。根据选择的值,你会知道如何计算它
-
如何根据组合框中的用户选择来更改标签?答:在设计器属性中设置SelectedIndexChanged事件
-
我应该设置什么作为组合框的文本属性?答:在设计器属性中设置DropDownStyle为DropDown,则文本将自动设置
-
我将为数组使用什么值类型?转换方程是数组的成员吗?答:双重作为值类型。将值设置为米数。例如,千米是1000,英里是1609.3这个等式是:
labelOutput。Text = (rates[comboBoxFrom.]* Double.Parse(textBoxValue.Text)/rates[comboBoxTo.SelectedIndex]).ToString();//例如:1000 * 1/1609.3 = 1.6093
-
我在计算按钮或组合框下输入这个吗?答:你可以在两个组合框的SelectedIndexChanged或点击按钮事件时进行。
我将为数组使用什么值类型?是转换吗?方程数组的成员?
您可以创建自己的原始Length类型,类似于Quantity模式。它可以在Length类本身中封装转换,也可以使用单独的Converter:
提供一个简单的接口来允许在对象上进行转换是很有用的数量直接,虽然转换工作通常最好留下使用转换器对象。如果你只有几个单位,那么更容易将它们直接嵌入到quantity类中。
请查看我在Github上的csunits项目。这个c#库提供了大量的单位转换,包括长度,还有一些示例GUI应用程序。
祝你转换顺利!
Anders @ Cureos