2012-02-24 19 views
7

Provengo da un ambiente VB.Net, dove si utilizza Imports System e quindi IO.Directory.GetFiles(...) funziona.Perché non riesco a scrivere IO.Directory.GetFiles?

D'altra parte, sembra che using System; non sia sufficiente per scrivere IO.Directory senza prefisso con System.. L'unica soluzione sembra essere using IO = System.IO;

Perché?


codice Esempio:

using System; 
using System.IO; 

namespace Test { 
    class Program { 
     static void Main(string[] args) { 
      System.Console.WriteLine(IO.Directory.GetFiles(System.Environment.CurrentDirectory)[0]); 
     } 
    } 
} 

Edit: La mia domanda non è che cosa devo fare per ottenere il mio codice di lavoro, ma in particolare "perché non posso scrivo IO.Directory.GetFiles ??"

+0

Ricorda che quando scrivi il nome esatto della classe ricevi sempre una piccola indicazione degli spazi dei nomi non aggiunti in basso a destra del nome della classe. Puoi espanderlo posizionando il puntatore del mouse sull'indicazione rossa e fare il necessario. – nawfal

risposta

8

Aggiungere

using System.IO;

e avrai il comportamento che ti aspetti. C# non rende disponibili spazi dei nomi figlio senza una direttiva using (o qualifica completa)

+0

+1 Bello, solo di interesse forse hai qualche riferimento a MSDN per quanto riguarda tale requisito sarebbe fantastico – sll

+0

Ecco qui: http://msdn.microsoft.com/en-us/library/0d941h9d.aspx –

+0

Questo produce ' Il nome 'IO' non esiste nel contesto corrente' quando scrivo 'IO.Directory.GetFiles' –

0

La cosa di cui si sta parlando non è possibile in C# che potrebbe essere diffrence tra C# e vb.NET.

Se si sta convertendo il codice vb.Net a C# di fare uso di questo sito vi aiuterà molto

vb.net to c#

Codice fo ryou

System.IO.Directory.GetFiles(...) 

o aggiungere

using System.IO; 

farà per voi

+1

Mi piacerebbe sbarazzarmi del prefisso 'System'. –

+0

@ Clément, aggiungi 'using System.IO;' alla tua raccolta di namespace in alto! – nawfal

Problemi correlati