2010-11-09 76 views
2

我在一些.Net Framework代码中遇到过这个问题。我从来没有见过它。任何人都知道它的意思?什么是C#中的[....]

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

编辑:我是通过我的一些代码步进,当它抛出异常。 Framework代码中某处出现异常。我现在不记得在哪里。这不是一个崩溃的地区。该部分在我的编辑器中以'标识符预期'错误标出。我想知道这是不是某种微软不希望任何人看到的超级秘密秘密松鼠密码的占位符。

+1

[Code goes here]是我的第一个假设。 – 2010-11-09 16:53:28

+0

你有没有试过把它扔进一个项目来看它是否编译? – RQDQ 2010-11-09 16:53:39

+1

是否有编译错误? – 2010-11-09 16:55:02

回答

5

我认为你在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必须是一个常量值。有一个很好的匹配,Message.Sync是值为0的私人常量。良好的匹配与/ /注意:保持此同步,和/ /不能支持异步和最终做一个同步调用。

这个用来说“Message.Sync”。

+2

不错的益智btw。 – 2010-11-09 17:22:44

+1

Levi(微软员工)表示,这种替换是由自动化工具从源代码中删除信息(例如,开发人员的姓名)所致。 [见答案](http://stackoverflow.com/a/12114704) – Brian 2012-09-10 16:14:23

0

我假设你在一本书中看到这种/博客/后等

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

+2

不,它在框架代码中。 – 2010-11-09 17:14:33

+0

你有链接到源的副本吗? – 2010-11-09 17:22:18

+0

如果您仍然好奇,请访问http://referencesource.microsoft.com/netframework.aspx – Brian 2012-09-10 16:17:33

1

您是否在宣言旁边看到一点[+]符号?看起来像你有方法崩溃。

+0

不可以。这不是一个折叠的部分。 – 2010-11-09 17:15:02