Bennisen schrieb:
Ich dachte das ich das mit der Vererbung mal ausprobiere, da ich noch nicht lange programmiere :).
Zum einen können das später recht viele Werte sein die initialisiert werden müssen. So hätte ich das voneinander getrennt um einen Überblick zu haben. Hatte auch vorher alles in einer Klasse nur fand ich es irgendwann unübersichtlich.
Das widerspricht aber der Idee der Vererbung. Wie µ schon sagte reicht es da eine Schiffsklasse zu basteln und die nur mit richtigen Werten zu fuellen.
Wenn du Vererbung ueben willst, dann mach das lieber an einem konkreten und sinnvolleren Beispiel. Die Gefahr die jetzt naemlich besteht ist, dass du die Verwendung komplett falsch uebst und verinnerlichst und spaeter immer wieder falsch anwendest.
Ja, ziemlicher Unfug. Wenn Du das in echten Programmen machst wirst Du unheimlich viel Müll im Speicher produzieren.
List<Test> Werte_berechnen(int Wert)
{
List<Test> lTemp = new List<Test>();
if(Wert <= 0)
return new List<Test>(); // Warum hier new List() ? Man könnte ebenso infach lTemp zurückgeben.
//Irgendwas
//lTemp wird mit Werten gefüllt
return lTemp;
}
public main()
{
int iWert;
List<Test> lWerte= new List<Test>(); // Das ist Unfug. Hier wird eine unnötige neue Liste angelegt die gleich in der nächsten Zeile ersetzt wird
lWerte = new List<Test>(Werte_berechnen(iWert)); // Auch das ist Unfug. Du bekommst eine Liste zurück und erzeugst eine neue Liste in die der Inhalt der alten Liste kopiert wird
}
Aufgeräumt sähe das so aus:
List<Test> Werte_berechnen(int wert)
{
List<Test> temp = new List<Test>();
if(wert <= 0) return temp;
//Irgendwas
//temp wird mit Werten gefüllt
return temp;
}
public main()
{
int intWert;
List<Test> werte = Werte_berechnen(intWert);
}
Und versuch am besten Dir diese komische Naming Konvention gar nicht erst anzugewöhnen...
ja, sry -.-
Habs jetzt so ähnlich gemacht, nur dass Proc die gemeinsamen Daten weiterleitet, so dass foo nur Proc als Parameter übergeben bekommt, anstatt beide.
Willst du nicht eher
private void txtbox_TextChanged(object sender, EventArgs e)
{
OnTextboxTextChanged(EventArgs.Empty);
}
?!!
P.S. Deine HandleTextboxTextChanged-Methode ist nur dann sinnvoll, wenn du die Parameter wegläßt:
private void HandleTextboxTextChanged()
{
OnTextboxTextChanged(EventArgs.Empty);
}
So kannst du dann in der oberen Methode dann auch einfach diese aufrufen!
PPS: Wenn du noch mehr Details dazu wissen willst, dann kannst du dir mal meinen Artikel Kommunikation von 2 Forms anschauen, der u.a. auch Ereignisse behandelt.
Ich habe ein Objekt vom Typ System.ServiceModel.Channels.Message, das eine XML enthält. Mit Envelope-, Header-, Body-Knoten etc.
Wen ich dieses Objekt an einen WCF-Service verschicke, dann werden im Header zwei Knoten hinzugefügt: <Security> und <To>.
Gibt es jetzt auf WCF-Seite einen Weg, diese Message wieder so umzuwandeln, dass sie inhaltlich identisch ist mit der ursprünglich eingegebenen XML?
Irgendeine Funktion RemoveMetadata oder so, die bewirkt, dass die XML, die mir in Message.ToString() ausgegeben wird, wieder exakt denselben Inhalt hat (Formatierung mal ausgenommen) wie die XML, die ich auf Clientseite per XmlReader in das Objekt geschoben habe?
Oder muss ich die XML rausextrahieren, wiederum in einen XmlReader laden und diese Knoten dann manuell entfernen? Das fände ich nicht so optimal, denn wer weiß, welche Knoten unter welchen Umständen beim Versand der Daten noch da reinkommen würden, an die ich jetzt gar nicht denke.
werkla4 schrieb:
Jemand eine Idee wie ich das Problem lösen kann?
Hi werkla4,
wenn Du ein kompilierbares Minimalbeispiel in Form eines VS-Projekts zur Verfügung stellst, würde ich es mir übers Wochenende mal anschauen.
Grüße
fr3yr schrieb:
Die Frage ist nur, wie löst man soetwas denn dann professionell?
Ich würde also am besten zu meinem Programm dazuschreiben, dass für dieses Programm die .NET-Version ... benötigt wird, würde dann einfach nur auf diese eine Version prüfen und gebe immer einen Fehler wenn diese eine Version nicht installiert ist?
Welche Version benötigt Dein Programm denn? Es gibt auch Mindestversionen die mit jedem Win ausgeliefert werden und die man einfach voraussetzen kann.
Wir prüfen schon eine ganze Weile garnichts mehr und führen die NET-Version in den Mindestvoraussetzungen auf. Der letzte Fall, dass ein Kunde nicht das passende Framework auf seiner Kiste hatte und sich an den Support wenden musste, liegt 1-2 Jahre zurück. Ein Einzelfall unter tausenden Installationen, wobei wir für Standardsoftware bisher "nur" 3.5 mit Service-Pack 1 voraussetzen. Das aktuelle Projekt benötigt 4.5, wird aber nur auf wenigen PCs eingesetzt.
ist besser als das von C bzw. C++, denn es werden automatisch alle Klassen im Projekt
Bitte keine Wertung. C++ oder C# kennen kein "Projekt". Es uebernimmt die IDE.
Ich möchte während der Runtime einfach nur eine Fehlerzeile in der Konsole ausgeben lassen und die Funktion soll abbrechen.
if (test(...)) return ...; // throw or whatever
Hallo zusammen,
ich komme von der EF V4 und bin jetzt bei V5. Früher konnte ich noch sowas hier machen:
ObjectSet<UNTERNEHMEN> UnternehmenListe = FbContext.UNTERNEHMEN;
Und schon wurde es mir in einem DataGrid auf meiner WPF Oberfläche angezeigt. Jetzt geht das irgendwie gar nicht mehr:-(
Erstmal will er jetzt plötzlich das hier:
DbSet<UNTERNEHMEN> UnternehmenListe = FbContext.UNTERNEHMEN;
Und angezeigt wird auch nichts mehr:-( Die Refresh Methode in dem Object COntext vermisse ich auch. Wo ist der ganze scheiß??
Mehr als versuchen, dir zu helfen kann ich nicht. Bei mir persönlich funktioniert es, wenn ich es als Administrator ausführe was für WCF völlig legitim ist.
Bzgl. warum du als Entwickler Administratorrechte haben solltest: Das fängt schon allein bei der Tatsache an, dass du Entwickler bist. Ich hab keine Ahnung was du bisher schon alles gemacht hast, aber es gibt einige Dinge die beim Entwickeln von Anwendungen zu Problemen führen können, wenn man die Rechte nicht hat.