Ich benutze jabber.net in C# und es gibt eine Eigenart, die mich verwirrt hat, so hoffentlich jemand erklären kann, wie es tut es. Ich bin immer noch ziemlich neu in C# von einem C + + Hintergrund, so kann es ein Missverständnis dort sein
Ich erstelle ein schreibgeschütztes JID, um einen Raum zu speichern, den ich betreten muss:
private readonly JID messagingRoomJID;
public MyClass
{
// Reads from database but for purpose of this question
messagingRoomJID = new JID("user@myserver");
}
Später möchte ich einem Raum beitreten, und da kommt das, was mich verwirrt
conferenceManager = new ConferenceManager();
conferenceManager.Stream = xmppClient;
// Before entering this room messagingRoomJID.Resource == null
theRoom = conferenceManager.GetRoom(messagingRoomJID);
// But now messagingRoomJID.Resource contains my username
Aber wie werden die Ressourcen verändert? Die Variable ist schreibgeschützt, aber sollte sie nicht auch per Konstantenreferenz übergeben werden, wie wird sie also überhaupt aktualisiert?
Es sieht so aus, als könnte ich es so machen, aber ich bin mir nicht sicher, ob das sinnvoll ist:
theRoom = conferenceManager.GetRoom(new JID(messagingRoomJID));