/

[Micropost] F12 en Visual Studio

¡Hola a todos! Visual Studio tiene una gran cantidad de atajos de teclado. Hoy vengo a hablar del F12 porque no todo el mundo sabe el partido que se le puede sacar a este atajo.

Código de ejemplo

Para ver la funcionalidad que nos ofrece el atajo F12 vamos a trabajar sobre un pequeño código de ejemplo en el que tenemos una clase y su interfaz.

interface IPost
{
    void Publish();
    void Schedule(DateTime publishDate);
}

class Post : IPost
{
    public void Publish()
    {
      Console.WriteLine($"Published post");
    }

    public void Schedule(DateTime publishDate)
    {
      Console.WriteLine($"Scheduled post: {publishDate.ToString()}");
    }
}

class Program
{
    static void Main(string[] args)
    {
      var postA = new Post();
      IPost postB = new Post();

      postA.Publish();
      postB.Schedule(DateTime.Now.AddDays(1));
    }
}

Go To Definition

En general el atajo F12 nos permite navegar a la definición del ítem sobre el que estemos situados. Por ejemplo, estando sobre una variable nos lleva a dónde está declarada. Pero vamos a ver más en detalle alguna de la funcionalidad que ofrece.

Nota: los atajos que vamos a ver funcionan en Visual Studio 2017. No podemos asegurarlo para versiones anteriores.

El atajo F12 nos sirve para navegar a diferentes partes del código: Go to Definition.

Si colocamos el cursor sobre un método y pulsamos F12 nos llevara a la definición de ese método.

Nota: Si la referencia con la que estamos trabajando es una interfaz nos llevará a la firma del método y no a la implementación.

De este modo al colocar el cursor sobre Publish() de la variable postA y pulsar F12 nos llevará a la implementación en la clase Post.

Por el contrario si pulsamos F12 sobre Schedule(...) de postB navegaremos a la definición del método en la interfaz ya que postB es una referencia de IPost.

Ctrl + F12

La mayoría de veces trabajamos con referencias a interfaces ya que hacemos uso de la inyección de dependencias.

Por eso el atajo F12 no siempre es tan útil porque muchas veces queremos navegar a la implementación de nuestro método.

Para solucionar esto tenemos el comando Ctrl + F12 que siempre navega a la implementación de método.

Por tanto si estando sobre Schedule(...) de postB navegaríamos a la implementación de Schedule en la clase Post.

Nota: En caso de tener más de una implementación de una interfaz, Visual Studio nos muestra una lista con todas ellas para elegir a cual queremos navegar.

Otra de las opciones que nos ofrece el atajo F12 es la de navegar a un tipo. Al igual que pasa con la navegación a un método si colocamos el cursor sobre un tipo o interfaz nos navega a dónde está definida.

Si pulsamos F12 sobre Post navegaremos a la definición de la clase y lo mismo sucede si lo hacemos sobre IPost que nos navegará a la interfaz.

var

Esta atajo es mucho más potente ya que nos permite navegar al tipo que infiere var.

Por tanto, en nuestro ejemplo, si nos colocamos sobre var y pulsamos F12 navegaremos a la clase Post.

Importante: Hay que colocar el cursor sobre la palabra reservada var.

Ctrl + F12

Al igual que pasaba con los métodos, al estar sobre una interfaz y pulsar Ctrl + F12 nos navegará a la implementación de la interfaz, en este caso a Post estando sobre IPost.

Más atajos

Esto es lo más interesante del los atajos F12 y Ctrl + F12. Como hemos comentado al principio, Visual Studio tiene muchos otros atajos que nos ayudan en el día a día a trabajar más fácilmente.

Podéis dejar en comentarios qué atajos de teclado os parecen más interesantes y los veremos en siguientes Microposts.

Un saludo y ¡nos vemos en el futuro!