我已经typedef
在C#中看到了很多问题的答案,我已经使用了,所以我有:
using Foo = System.Collections.Generic.Queue<Bar>;
Run Code Online (Sandbox Code Playgroud)
这很有效.我可以更改定义(尤其是更改Bar => Zoo等)以及使用Foo更改的所有内容.大.
现在我想要这个工作:
using Foo = System.Collections.Generic.Queue<Bar>;
using FooMap = System.Collections.Generic.Dictionary<char, Foo>;
Run Code Online (Sandbox Code Playgroud)
但是C#似乎并不喜欢Foo
第二行,即使我已经在第一行中定义了它.
有没有办法使用现有的别名作为另一个的一部分?
编辑:我正在使用VS2008
Dav*_*ave 15
根据标准看起来答案是否定的.从第16.3.1节第6段:
1 using-alias-directives的写入顺序没有意义,using-alias-directive引用的namespace-or-type-name的解析不受using-alias-directive本身或其他使用的影响立即包含编译单元或命名空间体中的-directives.
2换句话说,using-alias-directive的namespace-or-type-name被解析,就像直接包含编译单元或命名空间体没有using-directives一样.
编辑:
我只是注意到上面链接的版本有点过时了.第4版中相应段落的文本更详细,但仍禁止在其他段落中使用别名进行引用.它还包含一个显示它的示例.
根据您对作弊的需求和打字的强度,您可以通过以下方式逃脱:
class Foo : System.Collections.Generic.Queue<Bar>
{
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
936 次 |
最近记录: |