2014-04-03 115 views
1

我是一名c#初学者,在Visual Studio-2010中使用Silver Light-5进行Web开发。我有我的GUI运行我的代码,它是由xaml创建的GUI,按钮点击在c#中处理。将值转换为字符串格式的数据类型

现在我要实现的是:

我想创建一个GUI中,我使用组合框将包含类似这样的选项(请参阅此链接)http://prntscr.com/36l58s在这个环节我选择一个数据类型5个给定的数据类型(它们是字节,sbyte,short,int,long)。之后,我想将这个数据类型分配给c#代码中的一个变量,如下所示:(假设我选择了“short”)。 然后我想把它分配给一个变量(假设“varble”在这里)像这样short varble =1000;

如何做到这一点?

我为它的XAML代码:

和c它#代码是(里面的构造函数):组合框的

  comboBox1.Items.Add("byte"); 
      comboBox1.Items.Add("sbyte"); 
      comboBox1.Items.Add("short"); 
      comboBox1.Items.Add("int"); 
      comboBox1.Items.Add("long"); 

和按钮单击事件是:

private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
} 

为什么我想要做到这一点? :

其实,我只是试图创建一个GUI,我可以在给定的指定选项中选择运行时变量的数据类型,我想用combobox是最合适的。这个选定的数据类型(例如前面的例子中的short)选择dataType然后分配给我的代码在c#中的变量(其实我正在读我的二进制文件,我必须选择读取的字节存储在一个变量,必须有数据类型的选项(如short,int,long)应该由COMBO Box选择16/32/64位整数)。你能帮我做这件事吗?非常感谢(如果我的逻辑不工作,并且您有其他选择,请告诉我详细信息,因为我只是一名初学者)。再次感谢

回答

1

您可以从下面的代码示例得到的想法:

var selectedDatatype = "String"; 
var valueToConvert = 1; 
var convertedValue = Convert.ChangeType(valueToConvert, Type.GetType("System." + selectedDatatype)); 

注:确保居住在下拉菜单项属于System命名空间。所以,而不是长期,你应该使用Int64

+0

0123这样做,我必须保持在切换case语句,其中“字符串”是组合框中选择数据类型,这将是特殊情况下,当“字符串”被选中。如果,请问您可以使用switch-case声明进行更多解释。 – Sss

+1

转换时无需保存switch case语句。将选定的Combobox值赋给'var selectedDataType'变量。 – SpiderCode

+1

但请确保当您选择'long'时,它的组合框值应该是'Int64'。 'byte'到'Byte','short'到'Int16'等等相同...... – SpiderCode

相关问题