Du bist nicht ganz richtig. Hier gehts um C#, daß is nicht direkt C und solche Sachen, wie Du sie machen willst, macht man in C# etwas anders (ich meine einfacher...). Aber nun gut.
Prinzipiell mußt Du folgendes machen: zuerst läßt Du Dir in eine Variable (nennen wir sie mit scanf den Wert eingeben. Dann das gleiche für eine andere Variable (nennen wir sie Y). Dann kannst Du einen Speicherblock belegen, der X * Y Werte aufnehmen kann. Wieviel Bytes an Speicher für dieses Array dafür benötigt werden, hängt davon ab, was groesse[][] für einen Datentyp beherbergt (ein char, int, etc.). Dann kannst Du dem Array groesse die Adresse des zuvor belegten Speicherblocks zuweisen und schon kannst Du z.B. auf groesse[0][7] zugreifen (wenn das array so groß sein sollte).
PC-User schrieb:
Ansonsten sehe ich nur den Weg, um es einfacher zu machen:
void Test(object Obj)
{
if (Obj == tpyeof(int)){
Test((int)Obj);
}
else if(Obj == typeof(string)){
Test((string)Obj);
}....
}
Damit "kapselst" Du in gewisser Weise die Entscheidung weg, was wie gerufen werden muß. Wenn Du's richtig kapseln willst, mußt Du's halt mit einer Klasse machen, die nur public Test(Obj) kennt und dann intern die richtige "Detail"-Methoden implementiert (also int, string, long etc.). Das wäre dann auch die elegante Methode, die Dir vorschwebt.
Das gefällt mir, danke!
Ach ja... Ich glaube echt, dass das was ich machen will garnicht funktionieren KANN.
Angenommen, ich habe eine Funktion überladen wie oben (einmal mit int-Parametern, einmal mit string-Parametern), meine getData-Funktion liefert aber was vom Typ List zurück, dann haben wir das Problem, dass zur Laufzeit erst festgestellt werden kann, dass es für diesen Aufruf ja garkeine Funktion gibt (wir legen ja erst zur Laufzeit den Rückgabewert fest) Und das geht glaub echt nicht
Ok ich denke ich weiss was du meinst.
So könnte das gehen ich werd mich mal dransetzten.
Falls nicht steht dieser Post in ein paar Wochen wieder an der Spitze
Vielen DANK für die Hilfe !
mfg ToMjAcK
Nein, will ich nicht. Es wird ein etwas komplizierterer Vergleich.
Ich habe auch das Gefühl, dass das nicht geht, was ich will... Siehe dazu auch meinen anderen Thread...
Ich nehme an die Situation ist folgende?
public object Element {
get { return my_arrayList; }
}
Dann kann die ArrayList my_arrayList nicht verändert werden. Das heisst aber nur dass die Referenz nicht verbogen werden kann. Um auf die ArrayList schreibend zuzugreifen braucht er die Referenz nur lesend bekommen.
Element = my_otherList; // klappt nicht
((ArrayList)Element).Remove(1); // klappt, weil:
ArrayList list = (ArrayList)Element; // readonly-Zugriff auf Element
list.Remove(1); // list ist aber nicht konstant
wow vielen Dank, ich hab as in 1 gemacht und hab dann einfach den verweis nochmal neu angelegt und jetzt geht es. Vielen Dank für deine Hilfe, jetzt kann ich wieder weiter schaffen
Optimizer schrieb:
Hallo, Moderator *klopf* *klopf*
ncc-1701-m schrieb:
Leider nur für das 1.xer Framework:
http://ndoc.sourceforge.net
Damit fällt's flach. .Net 1.x war ein Schnellschuss nach dem gerichtlichen Verbot der proprietären Java-Erweiterungen und hatte praktisch noch keinen eigenen Style, war mehr vom Gedanken geprägt, COM+ weiter zu entwickeln. Ich habe aber bzgl. der Dokumentation gelesen, dass Microsoft die internen Doku-Tools für .Net 2.0 in absehbarer Zeit veröffentlichen will. Gute Nachrichten also.
Sorry, das wollte ich eigentlich zitieren.
Noodles schrieb:
Ja kann man. Öffne mal Deine csproj Datei mit nem Texteditor.
Beispiel:
<ItemGroup>
<Content Include="XMLFile.xml">
<DependentUpon>ProgramFile.cs</DependentUpon>
</Content>
</ItemGroup>
Danke für deine Hilfe.
Hallo!
Ich weiß, es ist Geschmackssache, aber ich hätte gerne die Klassenansicht des VS < 7.0 (Klassen -> Untermelente Funktionen, Member usw.). Die Ansicht des VS 8.0 Trennt nämlich Klassen in ein Fenster und dazugehörige Funktionen in ein anderes.
Ich will aber nicht alle Einstellungen des älteren Studios übernehmen, dafür gibt es ja eine leicht zu findende Option, sondern nur die alte Klassenansicht wieder nutzen.
Hat da jemand eine Idee, Erfahrung ...
Danke
Dann bist du hier aber völlig falsch
man: clock berechnet die Zeit in Clock-Ticks, die kannst du in Sekunden umrechnen, indem du den Wert durch die Konstante CLOCKS_PER_SEC dividierst (und wenn du noch 1000 multiplizierst, kommst du auf Millisekunden).
PS: Denk aber daran, daß bei int-Rechnung die Nachkommastellen abgehackt werden.
Hallo zusammen,
da in diesem Thread des öfteren nach Büchern für C# gefragt wird, möchte ich für alle Interessierten an dieser Stelle eins Empfehlen.
"Effizient Programmieren mit C# un . Net"
von vieweg - ISBN 3-528-05778-5
Ein Buch welches die eig die komplette Struktur und den Aufbau von C# von Grund auf erleutert, vor allem für Leute mit C++ oder Java Erfahrung,
allerdings denke ich das es Anfänger die noch nie Programmiert haben ebenso gut verstehen können.
!Vor allem ist die keins der Reihe "C# in 2Tagen" oder ähnliches!
Da ich 3 Jahre c++ & 3 Jahre Java erfahrung habe und noch sonstige Sprachen, war dies nicht nur ein einfacher "Umstieg" sondern auch lehrreich in vielen mir bisslang unbekanten Dingen "Automatische Dokumentation, Interpreterstrukturen, Sicherheit.."
MFG
Christian
Hallo,
bin ganz neu in C#, gibt es eine vernuenftige Library zu diesem Thema?
Hauptsaechlich muss ich SQL Anfragen auswerten (habe bereits eine funk. Klasse geschrieben)
und entsprechend SNMP Traps versenden.
Tips?
Vielen Dank im Voraus
kurze erklärung:
bei erzeugung der abgeleiteten klasse wird zuerst der standardkonstruktor der vaterklasse aufgerufen und danach der konstruktor der kindklasse. sollte es keinen standardkonstruktor(einen konstruktor ohne argumente) geben, so bricht der compilevorgang ab, weil er eben keinen passenden konstruktor findet.
in dem fall musst du dem kompiler selbst einen konstruktor der oberklasse vorgeben, der aufgerufen werden muss. und das eben mit dem ':' - Operator. (siehe Noodles)
Warum der code nach dem hinzufügen von "Mitarbeiter()" funktioniert, sollte dir nun einleuchten
p.s.: sorry für die fehlende gross-kleinschreibung...