Ich brauche Hilfe versuchen, das Beobachtermuster und die Delegaten zu verstehen. Ich habe diesen Code auf einer anderen Website gefunden und versuche zu verstehen, was er eigentlich macht. Kann mir jemand helfen?Observer Pattern und Delegates
Wenn ich den Code ausführen, bekomme ich beide Meldungen "Server läuft" und "Server ist ausgefallen, wir arbeiten daran, es wird bald wieder da sein". Ich glaube, ich bekomme beide Nachrichten, weil es im Main einen Server gibt. Server_status = true; und ein server.ServerStatus = false. Allerdings, wenn ich den Server auskommentieren. ServerStatus = true; und renne dann ich bekomme die Meldung "Server läuft und läuft" aber ich erwartete nur zu sehen "Server ist ausgefallen, wir arbeiten daran es wird bald wieder kommen.". Kann jemand das erklären? Susan
class Program
{
static void Main(string[] args)
{
Server server = new Server();
server.ServerStatusChanged += new EventHandler(ProcessServerStatus);
server.ServerStatus = true;
server.ServerStatus = false;
Console.Read();
}
public class Server
{
public event EventHandler ServerStatusChanged;
private bool _ServerStatus;
public bool ServerStatus
{
get { return this._ServerStatus; }
set {
if (this._ServerStatus == value) return; // Dont need to do anything;
if (this.ServerStatusChanged != null) // make sure the invocation list is not empty
ServerStatusChanged(value, new EventArgs()); // Firing Event
this._ServerStatus = value;
}
}
}
public static void ProcessServerStatus(object sender, EventArgs e)
{
bool status = (bool)sender;
if (status)
Console.WriteLine("Server is up and running");
else
Console.WriteLine("Server is down, We are working on it it will be back soon");
}
}
Dies ist getaggt Java, aber ich denke, der Code ist eigentlich C#. –
In der Tat ist es, dass diese {} set {}: s C# 's Feature sind, nicht Javas. Geänderte Tags – Esko