【问题标题】:Strings, arrays and their assignment vb.net字符串、数组及其赋值 vb.net
【发布时间】:2014-11-02 08:42:02
【问题描述】:

这是我正在尝试的,但 VB 不喜欢它,我在这里尝试的可能还是我应该尝试另一条路线?

Dim mystringarray() As String = If(trueorfalse, {"TrueString"}, {"List", "Of", "Other", "Strings"})

错误的描述是 预期的表达。 对于第一个和第二个{ 最后 逗号、')' 或预期的有效表达式继续。 最后 }

.net 框架 3.5 和 Visual Studio 2008

我正在寻找的是运行良好的 New String() {"TrueString"} 语法

但上述语法在 VS Express 2013 下运行良好

【问题讨论】:

  • 什么意思VB 不喜欢它?你的代码对我来说很好用..
  • 如果出现错误,则会出现错误消息。始终提供该错误消息,即使您认为我们不需要它。
  • 您使用的是什么 .net 框架?

标签: arrays vb.net string variable-assignment


【解决方案1】:

如果您使用的是旧版本的 .Net Framework,例如 2.0,那么简单的 If 运算符在这种情况下将不起作用。您必须使用If Then Else End IF 或者您可以使用IIf 方法获得单行结果。

你也可以这样做。

Dim bValue As Boolean = False
Dim mystringarray() As String = IIf(bValue, New String() {"TrueString"}, New String() {"List", "Of", "Other", "Strings"})

【讨论】:

  • 引入IIf 运算符如何帮助回答这个问题?
  • 如果 OP 使用的是旧版本的 .net 框架,那么 if 运算符将不起作用。这就是为什么我建议这个解决方案,而 OP 刚刚提到 VB 不喜欢它
  • 我认为应该在您的回答中明确说明该假设。那么这将是一个很好的答案。
  • @Enigmativity: 与 If-operator(conditional-operator) 相反 IIf 只是一种方法。只是吹毛求疵 ;) blogs.msdn.com/b/vbteam/archive/2008/03/11/…
  • @shell: 带有无法编译的严格选项,是吗? IIf 不是强类型的,这意味着您始终必须将其从对象转换为正确的类型。还值得一提的是,它没有短路功能,因此无论 bValue 值如何,双方都会进行评估。在。 NET 1.1 次,我发现 IIf 在大多数情况下毫无用处。
猜你喜欢
  • 1970-01-01
  • 2020-07-31
  • 2012-05-24
  • 2012-05-09
  • 2016-05-12
  • 1970-01-01
  • 2017-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多