【发布时间】:2017-03-31 18:20:57
【问题描述】:
例如考虑以下代码:
Properties.Settings.Default.startUp = cmbStart.SelectedIndex.ToString();
在 vb.net 中,同样的方法可以正常工作,但在 c# 中却不行。这里startUp是用户定义的设置typebyte和cmbStart是ComboBox。我该如何解决这个错误?
【问题讨论】:
-
正如错误所说,RHS 正在返回一个字符串,而您期望的是字节。您能否从该组合框中粘贴一个示例值,并让我们知道 startUp 应该做什么?
-
您正在尝试为 startUp 分配一个字节数据类型的字符串...
-
导致
cmbStart.SelectedIndex.ToString();等于字符串中的索引值。如果索引为 0,它将返回 0 作为字符串中的值。 -
您需要列出实际错误,selectedIndex 为空(其中 cas 使用类似 String.Format("{0}", cmbStart.SelectedIndex) 或 cmbStart 本身尚未初始化(所以null)。.ToString() 适用于所有非 null 的系统类型。(用户定义的类型可能会抛出异常,但这是另一天的讨论)
-
尝试使用
Option Strict On运行VB.NET,此转换也会失败。默认情况下,VB 允许你做一些愚蠢的事情。
标签: c#