【问题标题】:'objType' is not defined... Actually, it is, so why is this happening?'objType' 没有定义......实际上,它是,为什么会发生这种情况?
【发布时间】:2011-11-23 23:37:50
【问题描述】:

如下图所示,出于某种原因,我的 DirectCast 不会除了第二个参数之外的任何内容。它说它需要一个类型,但是,它根本不会接受任何对象!

感谢您的帮助!我正在使用 VB.net,所以所有 .net 答案都是可以接受的 :)

编辑

好的,显然我没有给它正确的type。有人可以澄清一下吗?假设它需要转换的类型是gridElement,我应该用什么替换objType?

【问题讨论】:

  • '它说它需要一个类型,但是,它根本不会接受任何对象';也许是因为它需要一种类型? DbType,是类型的一个很好的例子

标签: vb.net types undefined directcast


【解决方案1】:

DirectCast 需要一个对象原型(即只给它预期的类名)而不是System.Type 描述符对象。要使用System.Type 投射对象,您需要使用CTypeDynamic()

Return CTypeDynamic(createElementByIdAndLayer.MemberwiseClone(), objType)

错误本质上是告诉您类型名称为“objType”的类不存在。

【讨论】:

  • VS 无法识别 CTypeDynamic,我需要参考什么吗?
  • CTypeDynamic 是 .NET 4.0 框架的一部分。我假设您没有针对该特定库。
  • 嗯...遗憾的是没有。我试图针对最常安装的框架。我已经把它一直降级到 2.0 我相信......对不起。无论如何 +1。
  • 我很确定这些天你可以安全地瞄准 3.5。它是 Server 2008 和 Windows 7 的标准配置,并被标记为 XP 的关键更新。不幸的是,无论如何这对这种情况无济于事。你的返回类型是否符合接口?
  • 如果你提前知道你总是想要一个 gridElement 并且对象可以转换为一个 gridElement,你可以调用 Return DirectCast(createElementByIdAndLayer.MemberwiseClone(), gridElement)
【解决方案2】:

它需要一个“类型”,而不是一个“类型对象”。

函数的返回值是多少?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    • 2020-02-17
    • 2021-04-30
    • 2010-09-22
    • 2021-10-22
    • 2018-04-27
    相关资源
    最近更新 更多