Hace poco vimos que existen alias en C# para los tipos predefinidos de datos, y hasta ahí todo claro. Pero nosotros como programadores también podemos beneficiarnos de crear nuestros propios alias. Hay dos maneras de hacer uso de los alias:

Para tipos de dato

¿No sería fabuloso poder "cambiarle" (entre comillas porque en realidad solamente le estamos dando otro nombre) el nombre a int? tal vez sea mejor ponerle algo como Entero. Lo podemos hacer con una sentencia using de la siguiente manera:

using Entero = System.Int32;

Y después usarlo de la siguiente manera:

Entero uno = 1;
Entero dos = 2;
Console.WriteLine(uno + dos); // Imprimirá 3

Pero bueno, no creo que cambiarle el nombre a un entero les haga mucho sentido, así que trasladémoslo a una aplicación real. Supongamos que tenemos una aplicación que separa el modelo del acceso a datos, dentro de ella también tenemos dos clases llamadas Person, una dentro del namespace MyApp.DataAccess.Entities y otra dentro de MyApp.ViewModels.Editable. Para que la aplicación funcione hay un punto en el que ambas clases deben coincidir para que mapear de una a otra. Sin alias tendríamos que usar el nombre completo de las clases:

public static MyApp.DataAccess.Entities.Person MapPerson(MyApp.ViewModels.Editable.Person person)
{
	// ...

Ahora, usando alias reemplazaremos los nombres por algo más corto (y probablemente amigable):

using EntityPerson = MyApp.DataAccess.Entities.Person;
using EditablePerson = MyApp.ViewModels.Editable.Person;
// ... ... ...
public static EntityPerson MapPerson(EditablePerson person)
{
	// ...

Para nombres de espacio

Hay que aceptarlo, cambiar el nombre de los tipos puede resultar un poco confuso, pero C# también nos ofrece la posibilidad de ponerle un alias a los namespaces y se hace de la misma manera que para los tipos de dato:

using Ents = MyApp.DataAccess.Entities;
using Edt = MyApp.ViewModels.Editable;
// ... ... ...
public static Ents.Person MapPerson(Edt.Person person)
{
	// ...

Gran, gran desventaja

Dejé lo peor para el final: Los alias creados por nosotros solamente son válidos dentro del bloque de código en el que los definamos, ya sea dentro de un namespace o dentro de un archivo completo, lo cual significa que tenemos que repetirlo para cada archivo en el que lo usemos. Sería muy útil poderlos definir una sola vez a nivel global y después poder usarlas en toda nuestra aplicación.

Mi consejo

Estos alias existen, pero yo procuro no usarlas salvo en casos extremos y es que si no se usan con moderación pueden complicar mucho la lectura del código.