2010-04-09 4 views
2

Je suis habitué à VB.NET. Le code source du jeu dont j'apprends est écrit en C#. Je trouve ennuyeux que je dois ajouter using System.Diagnostics au code source afin de taper Debug.WriteLine.... J'ai vérifié sous les propriétés du projet, mais je ne trouve pas l'onglet Références qui me permet d'ajouter des espaces de noms aux espaces de noms importés. Où puis-je trouver ceci en C#?Prise en charge de la fonction Espaces de noms importés de VB.NET en C#

Aussi, pourquoi je ne peux pas faire cela en C#? Imports System.Math

Répondre

0

En C#, vous devez toujours spécifier explicitement les espaces de noms que vous souhaitez utiliser ou utiliser un nom complet:

System.Diagnostics.Debug.WriteLine (...); 

En outre, il y a un onglet références en vue de la solution, il faut y référencer des ensembles souhaités, car de nombreux assemblys ne sont pas référencés par défaut.

+0

Il s'agit d'un tel casse-tête. C'est frustrant quand vous ne pouvez pas utiliser intellisense pour trouver ce dont vous avez besoin. –

+0

Darin Dimitrov a précisé dans sa réponse comment vous pouvez résoudre partiellement le problème. Malheureusement, cela ne peut pas être utilisé pour les assemblages non référencés. – n535

+1

Votre réponse se lit comme si vous ne deviez pas utiliser 'using 'pour importer des espaces de noms, ce qui est un peu déroutant pour moi. –

3

Placez le curseur sur Debug dans le code source, un gribouillis rouge apparaît dans le coin inférieur droit du mot, appuyez sur Maj + Alt + F10 Entrée - l'est automatiquement ajouté à l'aide.

Aussi, pourquoi ne puis-je pas le faire en C#? Importations x = System.Math

Vous pouvez: using x = System.Math;

+0

Je suis désolé, je voulais dire Imports = System.Math. Je vais changer ma question. –

+0

Maj + Alt + F10 est pratique. Merci beaucoup. –

+3

Un raccourci bien meilleur est CTRL +.ce qui est plus facile sur les doigts – NibblyPig

3

Je ne pense pas que vous pouvez avoir des espaces de noms "cachés" en C#, comme vous pouvez en VB.NET (pas sûr). Pour la deuxième partie à propos de System.Math, vous pouvez effectuer les opérations suivantes en haut de chaque fichier.

using SM = System.Math; 

SM.Abs(...); 
+0

J'ai changé ma question Je voulais dire Imports System.Math –

+2

@Fred F.: parce que C# ne supporte pas le mot-clé Imports. En outre, System.Math est une classe et non un espace de noms. – Inisheer

+0

Oui, c'est ce que le message d'erreur indique, mais il ne dit pas pourquoi, et le message d'aide pour l'erreur ne fournit aucune information. –

1

Il est possible de modifier le modèle de Visual Studio pour les nouvelles classes C#. Ce n'est pas exactement la même fonctionnalité que dans Visual Basic, mais pour toute classe nouvellement créée, vous pouvez obtenir les espaces de noms que vous aimez.

Il est un peu plus que juste quelques clics de souris malheureusement, mais vous trouverez tous les détails décrits dans le blog de Anson Horton:

Item templates - adding references by default

Notez que ce qui vous permet non seulement pour modifier les directives par défaut using mais également pour modifier les assemblys référencés automatiquement lors de l'ajout d'une nouvelle classe. Comme l'article de blog lié à Visual Studio 2005, vous avez probablement besoin d'ajuster certains chemins, par exemple

Le fichier class.zip se trouve sous C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033 dans Visual Studio 2008.

Questions connexes