簡體   English   中英

C# 嵌套類型別名 - 無法解析符號

[英]C# Nested Type Aliases - Cannot Resolve Symbol

為什么這不能在 Unity 2018 C# 中編譯?

namespace MyNS
{
    using FooTable = Dictionary<int, float[]>;
    using BarTable = Dictionary<int, FooTable>;
} 

同樣,如果我省略名稱空間:

using FooTable = System.Collections.Generic.Dictionary<int, float[]>;
using BarTable = System.Collections.Generic.Dictionary<int, FooTable>;

我得到相同的編譯器錯誤。

(坦率地說,我不知道為什么 Dictionary 限定符在名稱空間內是可選的,但在外部是強制性的!)

編譯器錯誤是針對using BarTable...行中的最后一個符號:“無法解析符號FooTable ”。

這樣嵌套類型別名不就可以了嗎?

編譯器不允許這樣做:

https://learn.microsoft.com/en-us/do.net/csharp/language-reference/keywords/using-directive#remarks

創建一個 using 別名指令,以便更輕松地將標識符限定為命名空間或類型。 在任何 using 指令中,必須使用完全限定的命名空間或類型,而不管它之前的 using 指令如何。 在 using 指令的聲明中不能使用 using 別名。 例如,以下生成編譯器錯誤:

using s = System.Text;
using s.RegularExpressions; // Generates a compiler error.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM