【问题标题】:Object doesn't take value对象没有价值
【发布时间】:2011-11-09 13:31:26
【问题描述】:

我很抱歉这篇文章的标题,但我不知道如何描述我的问题。

所以,我得到了以下非常简单的代码:

dynamic obj = new myClass(); // In my case it is a COM object
int FileCount = 0;
FileCount = obj.SomeMethod();

但在运行时我会得到这样的结果:

那里发生了什么?为什么不是Filecount = 0?为什么是空的?

【问题讨论】:

  • 这看起来像一个运行时手表。那么代码是否编译? (注意它并没有说FileCount 为空,而是说它不存在。)您是否在调试模式下运行?
  • obj.SomeMethod() - 这个方法返回什么?整数?
  • 您是否尝试过按下监视窗口右侧的刷新按钮(值列中的最后一件事)?
  • 如果您尝试在“int FileCount = 0”行设置断点,是否会触发断点?我认为您遇到了临时文件的问题。尝试从 Windows/Microsoft.NET/Framework/yourversion/Temporary ASP.NET 文件中删除它...
  • @MattSpinelli 已经完成 ;),没有任何反应

标签: c# .net dynamic null int


【解决方案1】:

您正在发布版本吗?如果 FileCount 未在其他地方使用,则编译器可能会优化该变量。尝试在 Debug 构建中执行此操作。这也可能是由 pdb 文件不匹配引起的。清理所有输出目录并重新编译应用程序。

【讨论】:

    【解决方案2】:

    我应该认为优化出来了,初始化肯定是没有意义的

    int FileCount = obj.SomeMethod();

    因为它是动态的,所以各种编译器的魔法都会避免错误,敢说这要归功于所有在幕后处理 obj 动态的代码。

    【讨论】:

      猜你喜欢
      • 2015-04-20
      • 1970-01-01
      • 1970-01-01
      • 2011-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多