2016-06-26 1 views
0

Je souhaite créer une application de métronome.Le type ou le nom de l'espace de noms X est introuvable.

J'ai cherché à ce sujet et j'ai donné ce code de ce site:
http://gigi.nullneuron.net/gigilabs/c-metronome-with-timers-and-beeps/

Using System.Threading; 

static void Main(string[] args) 
{ 
    System.Timers.Timer timer = new System.Timers.Timer(); 
    timer.Elapsed += timer_Elapsed; 
    timer.Interval += 1000; 

    timer.Start(); 
    Console.ReadLine(); 
    timer.Stop(); 
} 

static void timer_Elapsed(object sender, ElapsedEventArgs e) 
{ 
    Console.Beep(4000, 100); 
} 

Je reçois deux erreurs:

pas de surcharge pour les délégués des matchs 'timer_Elapsed' « ElapsedEventHandler '

Le type ou le nom d'espace de noms' ElapsedEventArgs 'est introuvable

+0

static void timer_Elapsed (expéditeur d'objet, System.Timers.ElapsedEventArgs e) ou ajoutez en utilisant System.Timers et supprimez tous les préfixes 'System.Timers.'. – lexx9999

+0

@ lexx9999 Cela semble être la bonne réponse. Pourquoi ne pas poster une réponse? –

+0

Parsa Jeihoun et @ lexx999, je ne recommanderais pas de mettre des espaces de noms comme System.Timers, System.Drawing.Color, et al. sauf si vous devez absolument ou s'il n'y a pas d'autres classes ou bibliothèques autres que System .... *. Cela peut créer des problèmes si vous utilisez des objets similaires ou des propriétés d'autres espaces de noms. L'utilisation de pointeurs d'un autre côté serait acceptable si c'était à court terme comme dans les méthodes d'instance. – Sometowngeek

Répondre

2

En haut de votre fichier .cs ajouter using System.Timers; Ou changer votre deuxième méthode pour

static void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) 
{ 
    Console.Beep(4000, 100); 
} 

Il est fonctionnellement le même de toute façon, mais il vaut mieux ajouter le using.
Le problème est que vous spécifiez l'espace de noms System.Timer pour la classe Timer mais pas pour ElapsedEventArgs, donc le compilateur ne reconnaît pas ElapsedEventArgs.

1

changement

Using System.Threading; 

à

using System.Timers; 

Voir un travail DEMO.