2010-12-18 5 views
4

Pour obtenir l'heure et la date du système, pourquoi ai-je besoin de System.DateTime.Now? Comme vous pouvez le voir, il y a un espace de noms System déjà déclaré en haut. Si je viens d'écrire DateTime.Now cela ne fonctionne pas. J'ai appris plus tôt que si nous déclarons « using System », alors nous ne devons pas déclarer ou écrire System.Console.WriteLine ou System.DateTime.Now etc.DateHeure dans .NET

using System; 
using System.Text; 

namespace DateTime 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("The current date and time is " + System.DateTime.Now); 
     } 
    } 
} 

Répondre

11

Il est parce que votre espace de noms est déjà appelé DateTime qui des conflits avec un nom de classe existant. Donc, vous pouvez soit:

namespace DateTime 
{ 
    using System; 
    using System.Text; 

    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("The current date and time is " + DateTime.Now); 
     } 
    } 
} 

ou de trouver une meilleure convention de nommage pour votre propre namespaces qui est ce que je vous recommande de faire:

using System; 
using System.Text; 

namespace MySuperApplication 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("The current date and time is " + DateTime.Now); 
     } 
    } 
} 
+0

Vous êtes rapide ce soir Darin :) – alexn

+0

@alexn, ouais, c'est grâce à la bière :-) –

+0

Je vois ... Merci –

3

Parce que votre classe de programme est dans un espace de noms appelé DateTime. Ce conflit signifie que le compilateur cherchera un type appelé Maintenant dans votre espace de nommage DateTime qui n'existe évidemment pas. Renommez votre espace de nom et vous n'aurez pas le problème.