2010-11-25 3 views
6

Est-il possible d'activer le formatage du code source C# dans les initialiseurs de tableau dans VS.NET 2010? Est-ce que je manque une option de formatage dans Tools-> Options-> Text Editor-> C#?Formatage du code source C# dans l'initialiseur de tableau

+0

De votre commentaire sur ma réponse: "Snippet est tiré de l'initialiseur d'objet." - Avez-vous une chance d'ajouter plus de contexte? Je l'ai essayé avec 'var foo = new Foo {Elements = ...}', et c'est un C# valide. Cela ne ressemble pas à votre extrait de code. –

+0

Jusqu'à la version 2016, le problème persiste également pour les tableaux et les initialiseurs de listes –

Répondre

2

On dirait que c'est un VS.NET "caractéristique"

0

Je crois que vous avez besoin d'un constructeur par défaut sur votre TextViewModel et CheckViewModel. Pour autant que je sache, c'est la seule façon pour .net de le faire. En outre, je suppose que ces deux objets héritent d'une classe de base, et votre tableau est le même type que votre classe de base.

Sinon, les objets créés seront de type "var". Le compilateur lance un ajustement car le tableau doit être du même type que le "var". En outre, le paramètre que vous transmettez aux agents de votre objet doit être initialisé dans une propriété, tout comme les propriétés Label et Watermark de l'objet TextViewModel, et Style, Default et Label du CheckViewModel respectivement.

+1

Cela n'a rien à voir avec les constructeurs. C'est juste un bug ou une caractéristique du studio visuel. VS.NET ne contient pas d'initialiseurs de tableau de formatage intelligents :( –

0

Cela ne ressemble pas à du C# valide. Il vous manque une déclaration de tableau après Elements =. Il devrait être quelque chose comme:

Elements = new ViewModelBase[] { /* ... */ }; 

Une fois que vous avez corrigé cela, la mise en forme pourrait commencer à fonctionner correctement. Ca marche pour moi (mais j'utilise ReSharper).

+0

Les éléments sont des propriétés compatibles avec le tableau (Liste ) Extrait de l'initialiseur d'objet –

+1

Gotcha Dans ce cas, la réponse est probablement: "Non, vous n'êtes pas absent toutes les options, Visual Studio ne peut pas le formater correctement.Soit un bogue sur Connect (avec plus de contexte) ou installer ReSharper, qui fonctionne. " –

+0

J'ai un mauvais historique avec Resharper.J'ai essayé peu de fois, mais après sa désinstallation VS .NET est comme une bouffée d'air frais - rapide et furieux :) –

3

Il est un "Will not fix" à connect.microsoft.

Mais, comme il a écrit par Microsoft:

Si d'autres, trouvent que cela est une caractéristique importante, s'il vous plaît continuer de voter it up.

Remarque que cela ne concerne que plusieurs lignes initializers.