Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Traumzauberbaum
Thema: Größe von int-Variablen (Optimierung)
Am im Forum: Rund um die Programmierung

Zitat
Original von Nordwald
Die Einsparung von Speicher in diesem Bereich ist kaum eine Fingerkrümung Wert und sollte wahrgenommen werden.

Das ist eben ein Trugschluss. Du wirst mit sehr großer Wahrscheinlichkeit eben garnichts einsparen. Dafür legst du im Zweifelsfall noch drauf, weil 32 Bit Prozessoren mit 32 Bit Werten besser umgehen können als mit 16 Bit Werten.
Und dann schlägt höchstwahrscheinlich noch das schon beschriebene Alignment zu.
Außerdem kann eh nicht weniger als 4 KB Speicher angefordert werden. Die Chancen sind also sehr hoch, dass das Programm eh schon einen Verschnitt hat und noch reichlich unbelegten Speicher übrig hat. Reichlich zumindest wenn wir int mit short vergleichen.
Mit viel Glück erreichst du einen Vorteil bei Datenstrukturen, aber bei lokalen Variablen ist das sehr zweifelhaft. Und von diesen Datenstrukturen brauchst du dann auch schon mehrere hundert um auch nur eine Page mehr zu belegen. Von nem signifikanten Wert wie 1 MB mal ganz zu schweigen.

Eigentlich wie du schon sagtest, die Einsparung ist kaum eine Fingerkrümung wert.

Thema: .Net um Scriptsprache erweitern
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich glaube es geht eher darum eine eigene Sprache hinzuzufügen als irgendwas als Script ausführen zu lassen.


Die simpelste Variant wäre wohl einen Übersetzer von der neuen Sprache zu MSIL zu schreiben. Das MSIL könnte man dann zu einer .NET Assembly übersetzen lassen. Damit hätte man dann vollständige Sprachintegration. Man könnte Assemblies der neuen Sprache in .NET benutzen, und andere .NET Assemblies in dieser neuen Sprache verwenden.


Zu dem Thema ist wirklich schwer etwas zu finden. Die Suchbegriffe die mir dazu einfallen sind auch zu generell um was passendes rauszufinden.

Das .NET Framework hat zwar in relativ kurzer Zeit einen großen Sprachumfang erhalten, aber nahezu alle Initiative geht von Microsoft aus.

Thema: Plugins und allgemeine dlls
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Es geht auch, wenn du für die Plugins eine eigene AppDomain anlegst. Es muss lediglich das richtige Verzeichnis für das Auflösen der Referenzen gesetzt sein. Bei der AppDomain die beim Programmstart entsteht, ist das imo immer der Ordner, in dem die ausführbare Datei liegt.

Thema: Computerspiele, Trinken, Feiern etc.
Am im Forum: Smalltalk

Ich finde das liegt im Auge des Betrachters. Es ist keine Zeitverschwendung, wenn es einem irgendwas gibt. Aber das lässt sich nicht verallgemeinern.

Jeder hat eben seine eigenen Hobbies und eigentlich alle sind im Grunde Zeitverschwendung. Nur wenn man persönlich was davon mitnehmen kann, macht man das gerne und dann bringts einem auch was.

Weiß nicht ob das bei euch auch so ist, aber meine Hobbies helfen mir mich zu konzentrieren. Quasi das Hirn mal auf anderen Regionen ackern lassen und andere erstmal erholen. Und dann von einem neuen Blickwinkel ausgeruht wieder an anspruchsvollere Aufgaben.


Ich persönlich bin auch kein Party Animal. Ich hab an Saufgelagen kaum Spaß. Ich trinke selten viel, meist dann wenn mich die Situation ankotzt und ich keinen Spaß habe
Computerspiele machen mich inzwischen auch nicht mehr so an. Es fesselt mich nicht mehr so wie früher, ich spiel meist nur noch kleine Spielchen für zwischendurch. Bin nicht sicher, aber ich glaube zum Teil haben sich auch die Computerspiele verändert
Welches neuere Spiel kann es denn wirklich mit einem Monkey Island oder einem Quake (je nach Geschmack) aufnehmen? Früher war das echt noch was neues, da kamen Spiele raus, die es so noch nie gegeben hat. Heute hat man fast alle Varianten schonmal gesehen, das meiste sind sogar simple Neuauflagen alter Titel, nur wenige Perlen stechen hervor.

Dafür pflege ich jetzt andere Hobbies. Ganz auf Zerstreuung zu verzichten und immer Zielorientiert zu handeln, macht einen imo auf Dauer kaputt und auch weniger Leistungsfähig. Aber wobei man sich entspannt, kann man schwer allgemein fassen. Manche entspannen sich auf ner Party, manche bei nem Kreuzworträtsel.

Thema: With Anweisung
Am im Forum: Rund um die Programmierung

Nein

Thema: Ermitteln des ersten,zweiten,... Wochentags im Monat
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wenn du das Datum gegeben hast und testen willst ob es der letzte jeweilige Wochentag ist, musst du nur 7 Tage draufrechnen und Testen, ob sich der Monat verändert hat.

Thema: Vererbung
Am im Forum: Rund um die Programmierung

Stimmt ja auch, das geht nicht.

Form1 ist ein Form. Aber Form ist kein Form1.

So wie ein Hund ein Tier ist, aber ein Tier ist kein Hund.

Thema: Ermitteln des ersten,zweiten,... Wochentags im Monat
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Dier 4. kann aber auch der letzte sein

Thema: Windows Vista von Ferne abschaltbar
Am im Forum: Smalltalk

Zitat
Original von norman_timo
ich habe meines Wissens nicht gesagt, dass ich Software klaue, oder? Nein, es ging mir lediglich um die allgemeine Aussage, dass bei der Menge OEM und dass Windows so "günstig" sei, es kein Bedarf gäbe, es zu klauen.

Schon dabei von Bedarf zu reden, halte ich für fragwürdig. Entweder die Software ist es wert gekauft zu werden, oder nicht. Alternativen in Form von Klauen sind einfach indiskutabel.

Ich weiß nicht ob du das machst und möchte auch nicht drüber mutmaßen. Aber mich stört es einfach, dass du das hier rechtfertigst.

Findest du es nicht auch etwas widersprüchlich einerseits zu sagen, du baust deine PCs lieber selber, weil es billiger ist, und andererseits zu sagen, bei den selbstgebauten PCs ist kein Windows dabei und das wird dann zu teuer?

Hier in dem Thread geht es um die konkreten Maßnahmen die Microsoft in Vista trifft. Und du beschreibst "es trifft dich hart" lediglich im Kontext des Preises. Da bleibt leider kein anderer Schluss übrig als zu glauben, dass du dich von der Kopierschutzwirkung mehr getroffen fühlst als von den hier eigentlich kritisierten Wirkungen zum Thema legale Benutzbarkeit.

Thema: Windows Vista von Ferne abschaltbar
Am im Forum: Smalltalk

@norman_timo

Deine selbstgestellten Anforderungen entschuldigen nicht, dass du Software klaust.

Thema: Windows Vista von Ferne abschaltbar
Am im Forum: Smalltalk

Das Problem an der Sache ist eben, dass es völlig unwirksam gegen Raubkopierer ist und die legalen Besitzer viel härter trifft.
Ich will nicht, dass Microsoft einen meiner Treiber abschalten kann. Das geht die garnichts an was ich sonst noch auf meinem PC installiere und was für Hardware ich habe usw.

Aber wenn man das Betriebssystem legal benutzen will, wird man dazu genötigt. Sobald man das irgendwie rauspatcht, ist es schon wieder illegal.

Thema: Flaschenproblem
Am im Forum: Rund um die Programmierung

Imo ist das ein ganzzahliges Optimierungsproblem und damit NP-schwer. Also wird ein "cleveres Durchprobieren" nicht um Klassen schlechter sein als ein optimales Lösungsverfahren.
Weil ganzzahlige Optimierung NP-schwer ist, muss dieses Problem hier nicht auch unbedingt NP-schwer sein. Aber für mich sieht es doch ähnlich genug aus, um das erstmal anzunehmen. Außerdem sind die meisten interessanten Rätsel NP-schwer

Man muss nur die Zeilen- und Spaltensummen als Schranken verstehen, und für zwei Teile einer Flasche die Schranke einfügen, dass das obere Teil höchstens so viel enthält wie das Teil direkt darunter. Dann ist es nur noch formale Umformarbeit das ganze als ganzzahliges lineares Maximierungsproblem sauber auszuformulieren.


Wenn man die Zeilen und Spaltensummen als Gleichungssystem betrachtet und lösen will (z.B. über gaußsche Eliminationsverfahren), bekommt man einen ganzen Raum möglicher Lösungen. Da muss man dann erstmal alle rausfinden, die ganzzahlig sind (was mit ggT gut möglich sein müsste), und dann alle finden, die die Schwerkraftsbedingung erfüllen.

Thema: Kommentare zu meinem ersten CodeProject?
Am im Forum: Smalltalk

Sehr interessant, ich werds nur wohl nicht so schnell anwenden können, weil ich fast nie mit GUI arbeite. Aber ich hab den Link mal jemandem geschickt, der wohl eher was damit anfangen kann

Mir sind nur ein paar Satzkonstrukte aufgefallen, die etwas sehr deutsch wirken.

Nur mal zwei Beispiele an denen ich ins Grübeln kam:

Zitat
The interested should read the source code.

Worth mentioning is the Attributes property.

Ich bin nicht sicher, ob man das im Englischen so machen sollte. Im Zweifelsfall würde ich immer auf einen simplen Subjekt-Prädikat-Objekt Aufbau zurückgreifen, damit liegt man eigentlich nie falsch.


Fachlich ist mir nichts aufgefallen. Wie gesagt hab ich mit GUI nicht viel zu tun. Es fehlen höchstens noch ein paar Sticheleien gegen Microsoft für die schlechte Doku wenns darum geht das .NET Framework zu erweitern Wenn man anfängt und von einer Klasse im Framework erbt, stößt man sehr schnell auf Lücken in der sonst guten Doku.

Thema: RemotingException: Der RemoteProxy hat keinen Channelempfänger...
Am im Forum: Netzwerktechnologien

Ok habs jetzt eben nochmal durchgetestet. Dein Fehler ist nur, dass du den TcpChannel ohne Port erstellst. Ich hätte jetzt auch gedacht, dass er sich dann automatisch einen nimmt.
Also benutz einfach new TcpChannel( 0 ) und es sollte funktionieren, und er sollte sich selbst einen freien Port suchen.

Thema: 51200 MB kostenlos Mail-Speicher?
Am im Forum: Smalltalk

Leider findet man nirgends etwas über deren Finanzierung. Da bin ich doch eher mistrauisch.

Thema: RemotingException: Der RemoteProxy hat keinen Channelempfänger...
Am im Forum: Netzwerktechnologien

Das Server und Client in der Exception darf man nicht auf die Struktur des Programms übertragen. Für das Framework ist der Sender ein Client und der Empfänger ein Server, egal wie du das bei dir benennst.

Dein Server öffnet ja bereits einen Channel, auf dem dann die Daten empfangen werden. Aber dein Client öffnet seinerseits keinen Channel, auf dem der Server ihm etwas schicken könnte. Die Aktionen gehen also bloß in eine Richtung: Client -> Server

Damit das auch in die andere Richtung klappt, musst du auch auf dem Client einen Channel registrieren. Das müsste dann schon ausreichen.

Thema: C++/Java
Am im Forum: Rund um die Programmierung

Ich würde eigentlich als sehr gute Ergänzung IronPython vorschlagen. Damit kann man die .NET Bibliotheken benutzen und man kann IronPython wunderbar leicht in einem .NET Programm als Scriptsprache einsetzen.
Außerdem sind die Listengeneratoren eine Art Perview auf manches, was in C# 3.0 kommt.


Am Ende ist es eigentlich ziemlich unspannend eine Sprache zu lernen. Syntax ist wirklich kein Problem, und Bibliotheken kann sich eh keiner merken, da ist es wichtiger zu wissen, wo man ordentliche Informationen dazu findet.
Deswegen würde ich eher dazu raten Sprachen anzuschauen, die andere Konzepte als C# haben. Wenn du erstmal viele dieser verschiedenen Konzepte kennst, hast du auch kein Problem mehr eine völlig unbekannte Sprache zu lernen. Deswegen würde ich Java erstmal liegen lassen, mit dem arbeitet es sich recht ähnlich zu C#.

Thema: Generic - Prüfen auf Typ
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Nur um das nochmal festzuhalten, ein Cast ist keine Konvertierung.
Casts wandeln in der Regel nur in Typen um, die das Objekt ohnehin schon hat. Und das Objekt bleibt das Selbe. Eine Konvertierung erzeugt ein neues Objekt mit einem ganz anderen Typ aus den Informationen des ursprünglichen Objekts.

Du willst den Typ ja komplett Wechseln, also suchst du eine Konvertierung. Convert sollte da auch der passende Suchbegriff sein.



Und der generische Parameter ist hier auch völlig falsch eingesetzt. Generics sollten nicht den Polymorphismus ersetzen. Der würde hier völlig ausreichen.

Es gibt genau 4 Fälle in denen man zu einer generischen Methode greifen sollte:
1. Der Typ wird für einen Rückgabewert benutzt, das erspart casten
2. Man erstellt in der Methode eine Instanz von dem Typ ( new T() )
3. Man muss typeof(T) aufrufen. Hier ist aber Vorsicht geboten. Wenn ein Parameter diesen generischen Typ benutzt ist es besser sich dort über parameter.GetType() den Typ zu holen, weil man da garantiert den echten Typ bekommt. Mit typeof(T) bekommt man bei falscher Benutzung eventuell nur eine Basisklasse, und damit vieleicht nicht die besten Informationen. (Wobei das ja auch Absicht sein könnte...)
Außerdem sollte man mit typeof nicht den is Operator nachbauen.
4. Man ruft selbst wieder generische Methoden auf, die den Typ brauchen.


Alles andere lässt sich über Polymorphismus (inklusive dem is Operator) äquivalent lösen und spart den Overhead von Generics. Zumindest fällt mir kein weiterer Grund ein, warum eine Funktion generisch sein sollte.

Thema: #define Ersatz
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Gibts dafür auch einen Grund?

Thema: Was benutzt ihr für Tools?
Am im Forum: Smalltalk

hm... abseits von VS und C# was vieleicht nicht jeder kennt:

7zip
IronPython (extrem nützlich zum Testen von .NET dlls und zum Rechnen mit verflucht großen Zahlen :P)
IcoFX (ziemlich cool für Icons)
NSIS (mächtige Installationen erstellen)

Und alles legal

Thema: Übungsaufgabe: Ampel
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich würde nur anmerken, dass du den Umweg über ToString() nicht brauchst. Frag die Farbe direkt ab:


if( farge == Farbe.rot )
...

oder mach gleich ein switch:


switch( farbe )
{
    case Farbe.rot:
        ...
        break;

    case Farbe.gruen:
        ...
        break;
}

Thema: Pizza Script
Am im Forum: Rund um die Programmierung

Und nicht auszudenken was so eine "kostenlose" Software tatsächlich kostet, wenn man mal ein Problem damit hat. Wenn man z.B. ein halbes Jahr falsch rechnet und man am Jahresabschluss merkt, dass Geld fehlt.

Es ist ein weit verbreiteter Irrtum, dass kostenlose Software nichts kostet. Das gilt eigentlich nur im Hobby Bereich.

Thema: Argumentationshilfen
Am im Forum: Rund um die Programmierung

Das Hauptargument, was einem aber keiner von den älteren, erfahrenen Kollegen glauben wird, ist die enorm hohe Produktivität.

Die wird erreicht, indem man unnötige Komplexität wegnimmt (z.B. Pointer, Memorymanagement) und eine sehr umfangreiche und sehr gut dokumentierte Bibliothek hat.
Außerdem wird das durch die sehr guten IDEs und Hilftools unterstützt. Z.B. NUnit und seine Freunde und die Tools für die XML Dokumentation. Delphi kann da wirklich garnicht mithalten. Java kann aber ähnliche Dinge aufweisen, viele der .NET Programme sind von Java inspiriert.

Das glaubt einem nie jemand, der es nicht selbst probiert hat. Aber wer es ernsthaft probiert hat, wird zustimmen.

Java ist eine bedenkenswerte Alternative. Im Bereich GUI eher nicht, aber ansonsten ist es imo auf Augenhöhe.

Thema: Normalverteilung für Erwartungswert
Am im Forum: Rund um die Programmierung

Nicht gerade leicht.

Schau mal in Wikipedia unter Normalverteilung. Da steht weiter unten wie man normalverteilte Zufallsvariablen simulieren kann.

Gleichverteilte Zufallsvariablen liefert die Random Klasse.

EDIT: Iridium hat einen NormalGenerator der den Box-Muller Algorithmus implementiert.

Thema: Ideensuche zum Programmieren
Am im Forum: Rund um die Programmierung

Wie wärs denn mit nem Mastermind? Das sollte sich auch leicht auf Konsole umsetzen lassen. Entweder benutzt du bunte Zeichen in der Konsole, oder noch einfacher, schreibst die Farben aus, bzw. Abkürzungen für die Farben.

Wechselgeld ist aber auch ne gute Übung. Div/Mod ist bei Prüfungen sehr beliebt.

Thema: Auf Ereignisse reagieren, wie sieht der Designansatz aus?
Am im Forum: Rund um die Programmierung

Ich versteh es noch nicht so recht.

Das Problem was ich dabei habe ist, dass die Objekte ja auf Anfrage erstellt werden. Das heißt du willst im Prinzip nen Ablauf in der Art:
1. Anfragen
2. Warten bis Anfrage fertig
3. Verarbeiten

Das ist ja genau der Ablauf, wenn du das ganze in einem einzigen Thread laufen lassen würdest. Ich verstehe nicht so recht warum das Bearbeiten der Anfrage in nem anderen Thread laufen muss, wenn der anfragende Thread in der Zeit eh nur wartet.


Oder alternativ willst du vieleicht, dass ein Thread eine Anfrage erzeugt und dann was ganz anderes macht. Du erzeugst dann einen Thread, der die Daten holt. Aber genau dieser Thread der die Daten geholt hat, kann doch im Anschluss gleich verarbeiten.


Oder dein Problem bei der Sache ist lediglich, dass durch dumme Zufälle plötzlich zu viele Threads aktiv sind, dann benutze einfach den ThreadPool. Wenn du die Threads mit dem ThreadPool erzeugst, löst sich das Problem. Der lässt nur eine bestimmte Anzahl an Threads gleichzeitig zu. Wenn mehr angefragt werden, steckt er die völlig selbstständig in eine Queue. Wenn du nicht den kompletten ThreadPool damit verstopfen willst, müsstest du aber noch bisschen was mehr tun.


Oder du willst, dass Thread 1 die Anfrage stellt, von Thread 2 ein Objekt erzeugt wird, und Thread 1 die wieder verarbeitet, und Thread 1 in der Zeit wo Thread 2 arbeitet selbst noch was ganz anderes machen soll. Da gibt es keine andere Lösung als regelmäßig abfragen, ob was fertig ist. Du kannst einen Thread nicht unterbrechen und ganz woanders fortsetzen lassen.
Entweder warten und nichts tun, oder ständig prüfen. Dazu gibt es keine Alternativen.

Thema: Auf Ereignisse reagieren, wie sieht der Designansatz aus?
Am im Forum: Rund um die Programmierung

Also irgendwie hab ich auch noch Zweifel, dass ich das richtig verstanden habe.

Du hast also 2 asynchrone Aktivitäten:

1. In der einen werden irgendwie Objekte erzeugt (Erzeuger)
2. In der anderen werden irgendwie die Objekte verarbeitet (Verbraucher)

Und du willst vermeiden, dass die Verbraucher die ganze Zeit nachschauen ob etwas da ist (busy waiting)

Außerdem gibt es mehrere unterschiedliche Verbraucher, die jeweils auch nach unterschiedlichen Datenarten anfragen.


Haut das soweit erstmal hin?

Thema: Select Anweisung die mal geht und mal nicht
Am im Forum: Datentechnologien

Bei unterschiedlichen Sprachen hat das Datum unter umständen auch unterschiedliches Format.

Bei uns ist es normal zuerst den Tag zu nennen, dann den Monat. In den USA sieht das wieder ganz anders aus.
1.7. würde in beiden Fällen verstanden, aber unterschiedlich.
15.7. würde in dem einen Fall einen Fehler verursachen, in dem anderen nicht.


Du hast 2 Möglichkeiten:
1. Du konvertierst den Text explizit mit einer Funktion im SQL von einem ganz bestimmten Format. Da du dort explizit das Format angibst, wird immer das gleiche verwendet.

2. Statt das Datum in die SQL Abfrage zu schreiben, benutzt du SqlParameter.


PS das ist nicht von der Version des Visual Studios abhängig, sondern von der Version des SQL Servers.

Thema: D ist da
Am im Forum: Szenenews

Vielfalt ist besser als Einfallt. Die neuen Sprachen lernen doch alle voneinander.

Ein paar der D Features hab ich mir für C# schon gewünscht.
Covarianz steht da ganz oben auf der Liste.
Function Literals wären auch nett. Man kann das gleiche ja mit Reflection erreichen, aber ein direkter und typsicherer Weg wäre besser.
Adopter könnte ich im Moment auch sinnvoll einsetzen.

An manchen Dingen sehe ich aber bei D einen Feature Overkill. Zum Beispiel Dinge die einem das Lesen von Programmen schwerer macht, als es beim Schreiben nützt. Beispielsweise Lazy Evaluation of Function Arguments.

Und diese Masse an Features wird auch dafür sorgen, dass sich D als systemnahe Programmiersprache nicht durchsetzen wird. Das sorgt ja schon in vielen Fällen dafür, dass C nicht von C++ abgelöst wird.

Thema: Reflection und interne Klassen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Den Typ kannst du natürlich nicht so direkt verwenden. Du kannst nur z.B. alles in eine Variable vom Typ object speichern, und musst dann alle Methoden und Properties über Reflection aufrufen.