2011-10-06 15 views
7

Trabajo tradicionalmente en VB.NET, pero me han pedido que codifique el último proyecto en C#.Visual Studio 2010 - Editor C# más engorroso que el editor VB.NET

Esto está bien ya que puedo trabajar en cualquier idioma, habiendo tenido que traducir con frecuencia el código C# a VB en el pasado y no tengo reparos en desarrollar en ninguno de los dos.

Mi problema es con el editor de Visual Studio y cuántas de las tareas que tradicionalmente me han sido automatizadas mientras escribía código VB.NET faltan al escribir el código C#, o implican una gran variedad de pulsaciones de teclas.

Por ejemplo, la creación de un nuevo #region o función ...

En VB.NET crear una región implica escribir a máquina # + r , en el que el punto de IntelliSense patadas y me muestra #Region. Presiono espacio y #Region se completa automáticamente, lo que me permite escribir el nombre de la región, luego haga clic en Ingrese y se agrega automágicamente el #End Region de cierre.

En C#, # I tipo + r ... y nada .. tengo que hacer un clic Ctrl +k +x y seleccione #Region de la lista de fragmentos para lograr el mismo efecto.

De forma similar cuando se escriben funciones en VB.NET ... el autocompletado crea la estructura en segundos, mientras que C# implica tener que agregar manualmente los corchetes, etc., agregando preciosos segundos al proceso de desarrollo. (o tal vez haya otra combinación de teclas de acceso directo)

Estos son solo dos ejemplos, pero hay muchos otros donde los accesos directos que proporciona el editor VB.NET hacen que la codificación sea mucho más rápida que el editor C#. Estoy realmente sorprendido porque C# a menudo es alabado por ser "mejor" que VB.NET.

De todos modos despotricar.

Mi pregunta es, ¿hay algún complemento que permita la autocompleta en el editor de C# de la misma forma que se proporciona al editor de VB.NET?

+0

Estoy convencido de que los chicos del equipo de Visual Studio VB.NET entran y apagan las funciones en el lado C# cuando ese equipo no está mirando. Escucha muchas quejas sobre lo que aparentemente son cosas simples como esta. –

+2

En C# si escribe #region y pulsa la pestaña, inserta la #endregion y coloca el cursor en un cuadro de edición para escribir el nombre. Además, puede seleccionar líneas de texto, hacer clic derecho y elegir 'Surround with ...' y #region es una de las opciones. Por lo tanto, puede ser un poco diferente al editor de VB, pero no tanto. Para los métodos, solo crea un fragmento de código y luego puedes escribir el fragmento y presionar Tab para expandirlo por completo. –

Respuesta

10

Resharper ............................................. ............................

+0

parece que podría hacer el truco ... lo probaré mañana por la mañana. ¡Gracias! (y si funciona marcará la pregunta como respondida) :) – Peter

2

Suena como que necesita buscar en Herramientas ... Opciones> Editor de texto > C# y verifique la configuración allí. Algunas cosas se pueden sintonizar desde allí que pueden haberse perdido si configuró si configura su entorno como VB.NET inicialmente.

También puede consultar el Visual Studio Power Tools que tiene algunas opciones de corchetes de autocompletar disponibles, así como algunas otras características que podrían ayudar.

+0

He echado un vistazo a las opciones, y todas las relevantes parecen estar marcadas, pero ninguna (que puedo ver de todos modos) son para replicar el tipo de funcionalidad que previamente mencionado. – Peter

+0

Mis apoligias, pensé que los corchetes eran configurables en opciones para completar e insertar automáticamente en algunas opciones. Ctrl-K, X for Snippets tiene algunos de los elementos de región y otros que mencionaste. Pero sí, definitivamente faltan algunos –

3

Creo que solo estás acostumbrado a codificar en VB.NET. En cuanto a su comentario acerca de que C# es visto como superior a VB.NET, creo que debe hacer una distinción entre el lenguaje y el editor, porque los dos no están intrínsecamente vinculados.

Es posible que C# no ofrezca las mismas características de autocompletado que VB.NET lo hace, pero creo que la productividad se reduce a lo cómodo que se siente con el idioma. Incluso sin esas características de autocompletado, puedo codificar muchísimo más rápido en C# que en VB.NET, y eso es porque estoy acostumbrado a cómo se comporta C#, y sé cómo fluir con el editor.

En mi opinión honesta, creo que necesita acostumbrarse a la codificación en C# antes de que pueda hacer una verdadera evaluación de cómo la codificación en cualquier idioma afecta su productividad.

EDITAR

Si usted está buscando algo gratis que es comparable a ReSharper, sugeriría echar un vistazo a CodeRush Xpress. También hay una versión completa de CodeRush que cuesta alrededor de $ 100 más barato que Resharper.

0

Soy un gran defensor de CodeRush de DevExpress, que en gran medida tiene un propósito similar al de Resharper. En Code Rush, si quiero poner en una región, selecciono el código que quiero desglosar y presiono Ctrl-3, y la región se crea con una referencia en el nombre de la región que luego escriba. Su comportamiento también es muy Configurable con respecto a todas sus plantillas (que son como VS Code Snippets con esteroides).

Sin embargo, la revelación completa es una inversión porque la versión expresa tiene muy poca funcionalidad a partir de Visual Studio 2010. También haría esto o ReSharper, probablemente no ambos. Los dos había instalado en un punto y parece recordar que no juegan muy bien juntos.

2

ReSharper hace mucho con C# que Visual Studio ya hace para VB.NET de forma gratuita.

1

He aquí un fragmento de código para insertar un método privado:

<?xml version="1.0" encoding="utf-8" ?> 
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> 
    <CodeSnippet Format="1.0.0"> 
     <Header> 
      <Title>Private Method</Title> 
      <Shortcut>pvtm</Shortcut> 
      <Description>Code snippet for a private method</Description> 
      <Author>Your Name Here</Author> 
      <SnippetTypes> 
       <SnippetType>Expansion</SnippetType> 
      </SnippetTypes> 
     </Header> 
     <Snippet> 
      <Declarations> 
       <Literal> 
        <ID>type</ID> 
        <ToolTip>Return Type</ToolTip> 
        <Default>void</Default> 
       </Literal> 
       <Literal> 
        <ID>name</ID> 
        <ToolTip>Method name</ToolTip> 
        <Default>MyMethod</Default> 
       </Literal> 
      </Declarations> 
      <Code Language="csharp"><![CDATA[private $type$ $name$() 
    { 
     $selected$ $end$ 
    } //end method $name$]]> 
      </Code> 
     </Snippet> 
    </CodeSnippet> 
</CodeSnippets> 

Estoy seguro de que se puede mejorar, pero entonces sólo puedo escribir y pvtm pestaña y listo golpear! Obtienes un método completo. De nuevo, no es lo mismo que el editor de VB, pero está bastante cerca. Algunos podrían decir mejor.

Este es un fragmento antiguo y creo que funcionará en VS2010, pero no lo he probado.

Cuestiones relacionadas