[英]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.