2010-09-22 15 views
6

ho qualche domanda ricci ..
posso definire alias per la classe nella parte superiore del mio documento, comeAlias ​​per il nome della classe nel metodo

using MyName = Bla.Bla.ClassName

Ma posso definire qualcosa di simile nel metodo?

+0

Vuoi scrivere la stessa sintassi all'interno di un metodo? –

+0

La sintassi potrebbe essere un'altra. Il motivo principale è usare la classe ClassName dal namespace Bla.Bla in forma abbreviata (senza namespace nel metodo). – Yuriy

risposta

6

No, non è possibile. Se intendi che vuoi definire un alias di classe all'interno di un metodo, questo non è possibile.

Alias ​​potrebbero essere definiti solo in caso di file o di spazio dei nomi di livello:

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

o

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

Se invece dire che si vuole definire un "metodo alias", questo non è possibile : gli alias sono solo per tipi o spazi dei nomi.

5

No, using direttive devono essere sia fuori di qualsiasi dichiarazione, o all'interno di una dichiarazione dello spazio dei nomi:

using Foo; 
namespace Bar 
{ 
    using Baz; 
} 

Non si può fare questo all'interno di un metodo. Perché non farlo solo per l'intera classe? Perché lo solo desidera applicarlo con un metodo particolare?

+2

Ho un parametro generico su due tipi (l'o monade). I miei metodi hanno diversi rami di ritorno diversi, ognuno dei quali restituisce un "nuovo O (z)". I valori interni di Either sono di sola lettura, quindi senza un alias devo digitare "O " ogni volta che voglio fare riferimento a questo tipo. I tipi di parametro "x" e "y" dipendono dal metodo in cui mi trovo e di solito hanno nomi lunghi; "O uno " occupa in alcuni casi più di 60 caratteri. Sarebbe utile dire, all'inizio del metodo, "usando uno dei due = " e poi "restituisci nuovo uno qualsiasi (z)" per ridurre il disordine. – barron