【问题标题】:What is [....] in C#C# 中的 [....] 是什么
【发布时间】:2010-11-10 01:15:52
【问题描述】:

我在一些 .Net Framework 代码中遇到过这种情况。我以前从未见过它。有谁知道是什么意思?

switch(msgFlags)
{
case Message.[....]:  // <-- never seen this before?
    // do some stuff
}

编辑:当它引发异常时,我正在单步执行我的一些代码。异常在框架代码中的某处中断。我现在不记得在哪里了。这不是一个崩溃的地区。该部分在我的编辑器中带有“预期标识符”错误的下划线。我想知道它是否不是微软不希望任何人看到的超级机密松鼠密码的某种占位符。

【问题讨论】:

  • [代码在这里]是我的第一个假设。
  • 你有没有试过把它扔到一个项目中看看它是否可以编译?

标签: c#


【解决方案1】:

我想你是在 RealProxy.cs 中找到的。这看起来像是一个搜索和替换错误。字符串出现的地方有几个:

// NOTE: Keep this in [....] with unmanaged enum definition in Remoting.h
           msgFlags = Message.[....];
           // cannot support Async and end up doing a [....] call. We need
        case Message.[....]:

使用 Reflector 查看相同的代码,您会看到使用了字面值 0。这意味着 Message.Dunno 必须是 const 值。有一个很好的匹配,Message.Sync 是一个值为 0 的私有 const。也很好匹配 // 注意:将它保存在 sync 中,并且 // 不能支持 Async 并最终执行同步调用。

这曾经是说“Message.Sync”。

【讨论】:

  • Levi(Microsoft 员工)表示此类替换是由用于从源代码中删除信息(例如开发人员姓名)的自动化工具引起的。 See answer here
【解决方案2】:

您看到声明旁边有一个小 [+] 号吗?在我看来,您的方法已崩溃。

【讨论】:

  • 不。这不是一个折叠的部分。
【解决方案3】:

我假设您在书籍/博客/帖子等中看到了这一点。

它只是一个占位符。这不是有效的 C# 代码。

【讨论】:

猜你喜欢
  • 2010-10-13
  • 1970-01-01
  • 1970-01-01
  • 2020-10-05
  • 2020-08-08
  • 2011-05-28
  • 2011-03-26
  • 2012-07-12
相关资源
最近更新 更多