2010-09-22 79 views
6

我有些捲曲的問題..
我能爲我的文件頂部的類中定義的別名,如別名類名稱的方法

using MyName = Bla.Bla.ClassName

但我可以在定義是這樣的方法?

+0

你想在一個方法裏寫同樣的語法嗎? – 2010-09-22 07:54:47

+0

語法可能是其他語法。主要原因是在名稱空間Bla.Bla中使用類ClassName(在方法中沒有名稱空間)。 – Yuriy 2010-09-22 08:00:17

回答

6

不,你不能。如果你的意思是你想在方法中定義一個類別別名 ,這是不可能的。

別名只能在文件或命名空間級別上定義:

using MyName = Bla.Bla.ClassName; 
namespace A{ 
... 
} 

namespace A{ 
    using MyName = Bla.Bla.ClassName 
... 
} 

如果你不是說你要定義一個「別名法」,這也是不可能的:別名僅適用於類型或名稱空間。

5

沒有,using指令必須要麼是任何聲明之外,或在命名空間聲明:

using Foo; 
namespace Bar 
{ 
    using Baz; 
} 

你不能在方法中做到這一點。爲什麼不爲全班同學呢?你爲什麼只需想讓它在特定的方法中應用?

+2

我在兩個類型參數(單個monad)上有一個泛型。我的方法有幾個不同的返回分支,每個分支返回一個「新的任一(z)」。 Either的內部值是隻讀的,因此如果沒有別名,每次我想引用此類型時都必須鍵入「要麼」。參數類型「x」和「y」取決於我在哪個方法中,並且通常具有很長的名稱; 「任一」在某些情況下佔用超過60個字符。在方法開始時說,「使用任一個= 」然後「返回新的(z)」以減少混亂是有用的。 – barron 2016-09-12 17:41:36