对C#来说相当陌生。
我想从下拉式方块读取使用者输入,并使用选取的货币进行转换。输出不在主控台中,而是在Windows表单中。
这是我在组合框中输入的读取代码:
public void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
double first = comboBox1.SelectedIndex;
}
public void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
double second = comboBox2.SelectedIndex;
}
这是我的代码,它使用选定的索引并转换它们:
internal class Currencies
{
public double[] Convert(double[] currencies, int amount)
{
double[] convertedAmount = new double[currencies.Length];
if (Converter.comboBox1.first == HRK && Converter.comboBox2.second == EURO)
{
int exchangeRate1 = 1;
double exchangeRate2 = 7.4;
for (int i = 0; i < currencies.Length; i++)
{
convertedAmount[i] = amount * exchangeRate1 / exchangeRate2;
}
}
else if (Converter.comboBox1.first == EURO && Converter.comboBox2.seocnd == HRK)
{
int exchangeRate1 = 1;
double exchangeRate2 = 7.4;
for (int i = 0; i < currencies.Length; i++)
{
convertedAmount[i] = amount * exchangeRate1 / exchangeRate2;
}
}
else
{
throw new NotSupportedException();
}
return convertedAmount;
}
}
为什么这个方法不允许我使用变量“first”和“second”来转换货币呢?
3条答案
按热度按时间ioekq8ef1#
删除selectedIndexChanged过程,因为您在该过程中声明的局部变量在该过程触发后将被垃圾收集。
只需将Convert()方法中的 first 和 second 替换为 comboBox1.SelectedValue 和 comboBox2.SelectedValue 即可
ajsxfq5m2#
对不起,当我遇到问题时
必须添加
utils
这样的新类,并且必须添加到{ get ; set }
每个你都有概念这样更好
gg0vcinb3#
您可以使用这种方法,这是我在应用程序中经常使用的方法
1.建立三个文件夹(ViewModel、View和model)
1.安装fody.propertyChange from Nugget
1.为页面创建viewModel
1.在viewwModel中定义变量
string SelectedIted {get; set;}
1.在页面的xaml代码隐藏中,输入
DataContext = new NameOfYourViewModel
像这样的东西
虚拟机中
在您的XAML代码后面