2017-04-01 6 views
0

Ich bin neu bei C# und ich habe ein kleines Problem, meinen Code zu vervollständigen, ich habe viele Fälle ähnlich meiner gesehen, sie wurden durch Reflexion gelöst, aber es hat nicht funktioniert mich.Aufruf einer Instanz durch eine Zeichenfolge in C#

Ich habe eine Klasse, die konnte zwei Saiten und einem Doppel als Beispiel führt es ergibt:

room = "bedroom"; 

device = "TV"; 

status = ON; //on =100 double 

ich eine andere Klasse, die Zimmer genannt wird, die die Geräte als Funktionen einer Doppel Variable hat, Beispiele :

Room bedroom = new Room(); 
bedroom.lights(ON); 
livingroom.TV(OFF); 
kitchen.lights(OFF); 

die erste Klasse jeden Raum oder jedes Gerät oder alle Statuen zurückkehren kann, so gibt es eine Menge von Wahrscheinlichkeiten ist so will ich die drei Variablen aus der ersten Klasse in eine Codezeile wie die Beispiele gedreht werden von die andere Klasse:

Ein einfaches Beispiel für Ich möchte:

room = "bedroom"; 
device = "TV"; 
status = ON; // double ON = 100; 

dies sein:

bedroom.TV(ON); 

Wenn es eine andere Art und Weise zu tun, statt dass Strings in den Code des Drehens ich nicht dagegen^_^

+0

Ich bin mir nicht sicher, ob ich verstehe, aber Sie möchten vielleicht etwas wie eine Raumklasse, die eine Liste von Geräten speichert und jedes Gerät hat die Funktion "On" und "Off" und jedes Gerät hat seinen Namen und Status und den Raum Variable ist in diesem Fall nur ein Elternteil des Geräts. Wenn dies der Fall ist, können Sie auch die Schnittstelle "IDevice" mit den Funktionen "On" und "Off" verwenden und jedes Gerät (TV, Lampe, Mikrowelle) würde von "IDevice" stammen. – FCin

Antwort

0

Ich empfehle nicht, Ihre Syntax zu verwenden. Ich bin mir nicht einmal sicher, ob es möglich ist, vielleicht mit etwas seltsamem Nachdenken. Wie über diese Syntax:

bedroom("TV", ON); 

wo bedroom eine Instanz einer room Klasse. Dann würde Ihre room Klasse eine enthalten, so dass Sie Geräte wie Fernseher, Lichter, was auch immer Sie möchten, und stellen Sie ihre ON/OFF-Status.

Wenn Ihre Auswahl an möglichen Geräten begrenzt ist, z. nur Fernseher und Lampen, dann könnte man mit Reflektion arbeiten, aber IMO ist es nicht die Mühe wert.

Verwandte Themen