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 Crone
Thema: T Type dynamisch festlegen?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke für die Antworten.

Ich hab es nun so gemacht wie es eigentlich sein sollte, Ich nutze object und Konvertieren nun immer entsprechend selbst, damit bin ich Typ sicher muss aber immer in den Funktionen Konvertieren.

die Interpretation von Latino ist Korrekt genau das wollte ich erreichen :).

Type.MakeGenericType und Activator.Createinstance hab ich mir auch angeschaut und ist tatsächlich eine Möglichkeit, jedoch gefällt mir die noch weniger als alles manuell zu Konvertieren :D

Danke für eure Vorschläge

Gruß
Crone

Thema: Splash Screen - MainForm im Hintergrund
Am im Forum: GUI: Windows-Forms

Ich erzeuge einen SplashScreen immer folgendermaßen:

1. MainForm Konstruktor ausführen
2. Im Konstruktor als erstes this.Hide ausführen
3. Im Konstruktor als zweites SplashScreen erzeugen und mit Show und BringToFront anzeigen
4. Im Konstruktor einen neuen Thread erzeugen in dem dein Ladevorgang stattfindet.
5. Wenn Ladevorgang beendet SplashScreen.Hide und this.Show ausführen.

Damit solltest du einen Funktionierenden SplashScreen bekommen.

Thema: T Type dynamisch festlegen?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen,

ich habe eine Klasse die wie folgt aussieht:

    public class NetworkArgs<T> : EventArgs
    {
        public T Message;

        public NetworkArgs(T Message)
        {
            this.Message = Message;
        }
    }

Nun hätte ich gerne eine Liste in dieser sollen verschiedene (T's) Typen gespeichert werden


Anschließend möchte ich eine neue Instanz von NetworkArgs erzeugen mit einen Typen aus der vorher erstellten List.

Ist das möglich, wenn ja wie?

ich habe es bereits mit einige Datentypen versucht, jedoch ohne erfolgt.
Auch habe ich versucht die Datentypen einfach als object zu speichern und später mit typeof zu ermitteln, jedoch ohne erfolg.

Thema: [gelöst] Ersatz von ScaleTransform gesucht:
Am im Forum: Grafik und Sound

Ich hab mich mit 2D ohne Camera leider zu wenig beschäftigt, aber ohne Camera muss du eigentlich folgendes tun:

1. Maus Position bestimmen
2. Alle Bilder so verschieben das die Maus Position das Zentrum ist und die Sprites vergrößern.

So würde ich es zu mindestens ohne Camera versuchen zu Lösen, aber ob das der Richtige weg ist kann ich dir leider nicht sagen.

zu den Parametern die View und Projection Matrix sind Werte die eine Camera benötigt.
Wenn du also eine Camera einsetzen solltest benötigt diese eine View und Projection Matrix, diese wiederum werden in der oben gezeigten Funktion benötigt.

Zu der Camera in XNA wirst du aber ein Haufen Tutorials finden die ausführlich und meist sehr anschaulich dir alles erklären.

Thema: [gelöst] Ersatz von ScaleTransform gesucht:
Am im Forum: Grafik und Sound

Handelt es sich um 2D oder 3D?

für 3D kannst du folgendermaßen die Position bestimmen

private Vector3 GetWorldMousePosition(MouseState ms, Matrix projection, Matrix view)
{
    Vector3 near = new Vector3(ms.X, ms.Y, 0);
    Vector3 far = new Vector3(ms.X, ms.Y, 1);
    Vector3 nearPosition = device.Viewport.Unproject(near, projection, view, Matrix.Identity);
    Vector3 farPosition = device.Viewport.Unproject(far, projection, view, Matrix.Identity);

    Vector3 direction = farPosition - nearPosition;
    Vector3 Position = nearPosition + direction * (-nearPosition.Y / direction.Y);

    return Position;
}

Anschließen muss du nur noch die Camera Position anpassen. Hier kann man auch mit dem Z wert einen Zoom erzeugen.

das ganze lässt sich aber auch auf 2D anwenden solang du eine Camera verwendest.

Auch wenn die Camera in 2D nicht zwangsläufig verwendet werden muss, lassen sich damit jedoch solchen ding sehr simple lösen.

Thema: Splash Screen - MainForm im Hintergrund
Am im Forum: GUI: Windows-Forms

Kurze Anmerkung

            while (!_splashForm.Loaded)
            {
                Thread.Sleep(10);
            }

Thread.Sleep ist meiner Meinung nach ein Workaround für Problem die man nicht sauber lösen kann. Verwende einen Custom EventHandler oder ein Delegate, diesen/dieses rufst du auf wenn der Ladevorgang abgeschlossen ist, dadruch sollte die schleife unnötig sein.

Thema: Möglichkeit zwischen langen und kurzen Tastendruck zu unterscheiden
Am im Forum: Grundlagen von C#

Nimm einfach ein Timer den du in KeyDown event startest.

Thema: (verschlüsselte) Dateiübertragung via TCP
Am im Forum: Code-Reviews

Zitat von alzaimar
Die try...except- Behandung habe ich herausgenommen, denn sie kaschiert den Grund für den Fehlschlag komplett (Disk voll, Dateiname ungültig, Daten korrupt).

Diese würde ich nicht entfernen, da sonst bei jeder Exception das Programm crashed. Grade bei TCP/SQL etc. sollte man immer zu Sicherheit try catch verwenden,da man nie alle Fehler selbst abfangen kann bzw. es enormer Aufwand währe. Jedoch wurde das try catch natürlich falsch implementiert

Hier ein etwas bessere Fehlerbehandlung

try
{
}
catch(Exception error)
{
//error.StackTrace -> in Error-Log speichern
//error.Message -> in Error-Log speichern
//ggf. Datum / Uhrzeit in Error-Log speichern
//MessageBox mit nachricht an den User das etwas nicht funktioniert hat ggf. error.Message anzeigen
//bei Exceptions wie timeout ggf. auto-retry einbauen
}

Natürlich kann man die Fehlerbehandlung auch außerhalb der Klasse gestallten, es sollte aber jedenfalls darauf geachtet werden das die Exceptions irgendwo, ob nun in der Klasse oder außerhalb, abgefangen werden.

Thema: Datenbankverbindung nimmt Windows Anmeldename, statt SQL Benutzer
Am im Forum: Datentechnologien

Zitat von schuppsl
Den interessiert der Connectionstring gar nicht.

Data Source=DATENBANK;Initial Catalog=TABELLE;Persist Security Info=True;User ID=reader;Password=**********

Was mir auffällt ist das Data Source eigentlich der Server ist und Initial Catalog die Datenbank.
Die Tabelle wird in einem ConnectionString nicht angegeben.

Es gibt ein SQLConnectionStringBuilder versuchs mal damit :)

Thema: NullReferenceException aber keine Null Objekte
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Genau das dachte ich mir auch als ich fertig war mit schreiben.
Ein paar locks später und alles funktioniert :D

Ich denk bei Dictionaries nie daran das diese nicht Thread-safe sind :(

Danke.

Thema: NullReferenceException aber keine Null Objekte
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen,

ich hab ein Tool welches mehrere unbekannte DLLs laden kann, die aber mit meinem Interface übereinstimmen müssen.

In einen Eigenen Thread werden die DLL's geladen und mehrere Funktionen werden aufgerufen.
Nun kommt es aber ab und zu vor (Ja nicht immer, bei ca. 1 von 5 Programm-Starts), dass wenn ich die Rückgabewerte in einen Dictionary einfüge eine NullReferenceException auftritt.

Was wirklich interessant ist das:
1. Die NullReferenceException nur ab und zu kommt -> Der Programmablauf ist aber vollkommen identisch und ein User kann noch nicht eingreifen, da der Code mit dem Form_Load Event ausgeführt wird.
2. Wenn ich die Variablen mir anschaue ist keine der Variablen NULL.
3. Ich füge vier Rückgabewerte in vier verschiedene Dictionaries ein und der Fehler scheint bei einen beliebigen Dictionary aufzutreten... mal ist es das erste, dann wieder das dritte.


                if (plugin != null)
                {

                    if (!plugins.ContainsKey(FileName))
                        plugins.Add(FileName, plugin); //Fehler hier 

                    if (!pluginInfos.ContainsKey(FileName))
                        pluginInfos.Add(FileName, plugin.GetPluginInfo()); //Fehler hier 


                    if (!pluginButtonTexts.ContainsKey(FileName))
                        pluginButtonTexts.Add(FileName, plugin.GetButtonText()); //Fehler hier 

                    Control c = plugin.GetControl();
                    if (!pluginControls.ContainsKey(FileName))
                        pluginControls.Add(FileName, c); //Fehler oder hier 
}

Mir ist vollkommen schleierhaft wie ich eine Exception bekommen kann wenn keiner der Werte NULL ist.

ich hoffe jemand von euch hat eine Idee woran es liegen könnte, den ich könnte nach ewigen Debuggen nichts entdecken.

Gruß Crone

Thema: [erledigt] FTP File Upload Error 550
Am im Forum: Netzwerktechnologien

So ich hab den Fehler endlich gefunden.

Der FTP Path ("ftp://192.168.100.2:21/subdir/test.txt") enthielt als Verzeichniss "subdir" dieses war aber schon das Standardverzeichnis des verwendeten Benutzers.

Das subdir musste also einfach aus den FTP-Path gelöscht werden.

Warum dies mit den Explorer und anderen FTP-Programmen problemlos funktioniert ist mir zwar noch ein Rätsel, da der Fehler vom FTP-Server zurück gegeben wurde.

Gruß
Crone

Thema: [erledigt] FTP File Upload Error 550
Am im Forum: Netzwerktechnologien

Hallo zusammen,

ich habe drei Dateien die ich mit einen kleinen FTP Programm hochladen bei zweien funktioniert es super nur bei der dritten nicht.

leider konnte ich nach stunden langen debuggen und google noch immer keine Lösung finden.

Jedes mal wenn ich versuche die Datei zu Uploaden bekommen ich folgenden Fehler:

Der Remoteserver hat einen Fehler zurückgegeben: (550) Datei nicht verfügbar (z.B. nicht gefunden oder kein Zugriff

Ich hab via FileZilla den Username und das Passwort ausprobiert und auch versucht einen Datei Manuell hoch und runterzuladen. Alles lief ohne Probleme.

Versuche ich eine Datei mit mein Programm herunterzuladen klappt das nicht.

destPath enthält: "ftp://192.168.100.2:21/subdir/test.txt"

                Uri uri = new Uri(destPath);
                FtpWebRequest fwr = (FtpWebRequest)FtpWebRequest.Create(uri);
                fwr.Method = WebRequestMethods.Ftp.UploadFile;
                fwr.Credentials = new NetworkCredential(con.Username, con.Password);
                fwr.UseBinary = true;
                fwr.UsePassive = false;

                FileStream fs = new FileStream(con.LocalPath + @"\" + (realFileName.Length > 0 ? realFileName : con.SourceFileName), FileMode.Open);
                byte[] fileContents = new byte[fs.Length];
                fs.Read(fileContents, 0, Convert.ToInt32(fs.Length));
                fs.Flush();
                fs.Close();

                Stream requestStream = fwr.GetRequestStream();
                requestStream.Write(fileContents, 0, fileContents.Length);
                requestStream.Close();


                response = fwr.GetResponse();
                status = ((FtpWebResponse)response).StatusDescription;
                response.Close();
                return status;

Danke für eure Hilfe.

Gruß Crone

Thema: Assembly.LoadFrom lädt die (vermeintlich) falsche Dll
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

na wer hat sich den sowas ausgedacht :)

Vielen Danke, funktioniert nun wie gewünscht.

Thema: Assembly.LoadFrom lädt die (vermeintlich) falsche Dll
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen,

ich bin auf ein komisches Problem gestoßen welches vermutlich ein bug im debugger oder Framework ... oder ich bin vollkommen blind :)

Ich möchte mehrere DLL's aus einem Verzeichnis laden (alle unterschiedlich aber von der selben Basis Klasse UND Interface abgeleitet)

Wenn ich nun folgenden Code ausführe wird bei LoadFrom(Pfad) die falsche DLL geladen trotz eindeutiger Pfad-Angabe.

        private void LoadDll(string dllpath)
        {
            try
            {
                Assembly assembly = Assembly.LoadFrom(dllpath);
                Type[] types = assembly.GetTypes(); //hier kommt immer das selbe raus
                foreach (Type type in types)
	            {
                            //IBase baseInterface = assembly.CreateInstance(type.FullName) as IBase;
                            object data = assembly.CreateInstance(type.FullName);
                            IBase baseInterface = data as IBase;//gibt null zurück warum auch immer...
}


ich hab im Ordner z.b

InfoCollector.dll
a.dll
b.dll

für jede Datei ruf ich die Funktion LoadDll auf mit den entsprechenden Pfad als parameter

in der Variable assembly wird auch die richtige assembly geladen, solang es keine DLL ist die von dem Interface und der Basis Klasse Ableitet... ist es jedoch eine so wird immer die zuerst geladene DLL in dem Fall InfoCollector.dll geladen


Ich hab leider absolut keine Ahnung mehr woran das liegen könnte bzw. wie ich das Problem beseitige.

Desweiteren kann ich das geladene object wenn ich eine Instanz der Assembly erstelle nicht ins Interface Konvertieren. (es wird null zurückgegeben)

In meinem Test Projekt wo sich alle Klassen in einer Datei (2 Namespaces) befanden hat das Konvertieren super geklappt. Mit Ausnahme das sich alles in einer Datei befand (kein laden einer dll notwendig) hat sich bei der Konvertierung nichts geändert.

Ich hoffe jemand von euch hat eine Idee dazu, Danke.

Gruß
Crone

Thema: Mittels C# in Crm Programmieren
Am im Forum: Rund um die Programmierung

Wenn du in Dynamics Nav zuvor entwickelte DLL's verwenden möchtest, muss du lediglich die DLL erstellen und in Windows registrieren. Anschließend kannst du diese als ganz normale Variable in Navision erstellen (DatenTyp: Automation in neueren Version glaube ich heißt der Daten-Typ: DotNet)

um eine DLL zu Registrieren kann folgendes in einer Batch-Datei gepackt und ausgeführt werden. (OurDLL.dll durch dein DLL-Namen ersetzen!)

SET GACUTIL="C:\Program Files (X86)\Microsoft SDKs\Windows\v7.0A\bin\gacutil.exe"
SET REGASM="C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\regasm.exe"
%REGASM% OurDll.dll /tlb:OurDll.tlb
%GACUTIL% /i OurDll.dll

Zusätzlich solltest du folgendes Tutorial befolgen... Nun sollte nichts mehr schief gehen :)

Writing an automation for Navision in C#

Wenn du z.B. Custom-Controls entwickeln möchtet sollte folgender Link ganz hilfreich sein.

Walkthrough: Creating and Using a RoleTailored Client Control Add-in

Zu guter letzt sei gesagt das Google alle fragen zum Thema Interorp und Dynamics Nav schnell beantwortet hätte... auch wenn die Doku nicht so der bringer ist gibt's mittlerweile eine Menge Tutorials.

Gruß Marcel

Thema: Alle Pixel eines 3D-Dreiecks berechnen
Am im Forum: Grafik und Sound

Wenn ein Dreieck 3D sein soll muss es eine Dicke haben daher würde man um genau zu sein ein Prisma Zeichnen. Würde man dies nicht tun könnte man das Dreieck von der Seite nicht sehen da es ja keine Dicke hat... Sprich wenn man ein 3 Dimensionales Dreieck zeichnen möchte muss man zwangsläufig ein Prisma zeichnen. Daher 2 Dreiecke die übereinander liegen und die verbindungswänder der zwei Dreiecke mit einer minimalen Dicken.

Das bedeutet alle Punkte werden mindestens zweimal gezeichnet und die Ränder sogar 3 mal wenn er jedoch nur ein Dreieck in einen Raumzeichnen möchte (was bedeutet dass,das Dreieck nicht 3 Dimensional ist) dann braucht man das natürlich nicht.

Thema: [gelöst] Log/Protokoll vom Kompiliervorgang einsehen, um zu sehen, warum der Build so lange braucht
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Wenn die Kompelierungzeit stark zu nimmt hat das fast immer etwas mit externen Medien zu tun also nicht mit dem Code sondern mit z.B. Bildern, Videos bzw. irgendwelches Content welches aber auch ein Kompile Vorgang durchläuft. Das war zu mindestens bei mir meistens der Grund das es schonmal mehrere Minuten dauerte.

Thema: Alle Pixel eines 3D-Dreiecks berechnen
Am im Forum: Grafik und Sound

Die Pixel müssen doch alle Doppelt gesetzt werden Wenn dein Dreieck 3 Dimensionen hat, hast du 2 Dreiecke die Exakt aufeinander liegen mit einen gewissen abstand dazwischen die Rand bereiche müsste also daher mindestens 3 mal gezeichnet werden da ja noch die verbindungspixel gezeichnet werden müssen.

jedoch schaust du mit deiner "Kamera" von oben direkt auf dein Dreieck du würdest also nie mitbekommen ob dein Dreieck nun 2D oder 3D ist. Du brauchst also erstmal eine Kamera bzw. ansicht die es dir erlaubt das Dreieck von allen Seiten zu betrachten vorher kannst du nicht wirklich gescheit testen.

Wenn auf einen bestimmten Punkt schon etwas gezeichnet worden ist solltest du im normalfall diesen nicht nicht nochmal zeichnen, da du diese Pixel ja nicht mehr sehen kannst außer du fügst Tranzparenz hinzu.

Es muss auch darauf geachtet werden das du deine Objekte bzw. dein Dreieck von hinten nachvorne zeichnste sonst überdeckt die rückseite deine forderseite. (Nur notwendig wenn du nur das Zeichnen möchtest was du auch siehst ... was durchaus sinnvoll ist, jedoch muss du dein Dreieck immer wenn die Kamera oder Ansicht sich änder neu zeichnen)

Also jedemenge zu tun bevor das wirklich richtig funktioniert.

An hand deines Codes kann man leider nicht viel helfen grade auch weil wichtiger Code fehlt.

z.B. die Funktion Dist(list1, list2)


Am besten wäre es wenn du erstmal structs erstelltst z.B. wie in XNA
Vector3(x, y, z)
Vector2(X, y) oder auch Point
Line(Vector2 start, Vector2 ziel)

solche sachen sind viel einfacher zu verstehen und helfen dir auch ungemein weiter.


Ich hoffe ich konnte dir ein bisschen helfen.

Grüße

Thema: Warum verändern mehrere ComboBoxen, die an dieselbe Liste gebunden sind, ihren Wert gleichzeitig?
Am im Forum: GUI: Windows-Forms

Cool wieder was dazu gelernt :)

Thema: Warum verändern mehrere ComboBoxen, die an dieselbe Liste gebunden sind, ihren Wert gleichzeitig?
Am im Forum: GUI: Windows-Forms

Ein object also z.B. eine Liste werden grundsätzlich als Referenz behandelt und nicht als Kopie, sogesehen gibst du der ComboBox ein Link zur Quellen, löscht du nun bei einer ComboBox etwas wird dies an die Quelle weitergeleitet in dem Fall die List<string>. Da beide aber als Quelle deine List haben wird das Element auch aus der zweiten ComboBox gelöscht.


Entweder du füllst die ComboBoxen selbst indem du die List mit einer Schleife durchläufst und anschließend

ComboBox.Items.Add(WERT)
nutzt oder du erstellst zweite List<string>

Thema: [gelöst] Timer in Service wird nicht ausgeführt
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke!

Thema: [gelöst] Timer in Service wird nicht ausgeführt
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Guten Abend,

Ich hoffe ihr könnte mir weiterhelfen nachdem ich schon seit Stunden teste und kein schritt weiter komme :(

Also ich hab ein Service geschrieben dieser soll jede Sekunde ein Variable hochzählen ...Einfach oder?

Naja komischerweise irgendwie doch nicht den der Timer wird nicht ausgeführt zu mindestens wird kein log-eintrag geschrieben

Hier der Code:

        private const string username = "User";

        public Service1()
        {
            InitializeComponent();
            this.ServiceName = "ComputerTimer";
        }
        private const string path = "C:/Temp/log.srv";
        private StreamWriter sw;
        protected override void OnStart(string[] args)
        {
            try
            {
                if (File.Exists(path))
                {
                    File.Delete(path);

                }
                File.Create(path).Close();

                sw = File.AppendText(path);
                sw.WriteLine("Username: " + System.Security.Principal.WindowsIdentity.GetCurrent().Name + " ; " + Environment.UserName);
                sw.Flush();
                if (Properties.Settings1.Default.Datum == "nichts")
                {
                    Properties.Settings1.Default.Datum = DateTime.Today.ToShortDateString();
                    Properties.Settings1.Default.Sekunden = 0;
                    Properties.Settings1.Default.Save();
                    sw.WriteLine("DATUM UNBEKANNT");
                    sw.Flush();
                }
                else if (Properties.Settings1.Default.Datum == DateTime.Today.ToShortDateString())
                {
                    sw.WriteLine("Seconds: " + Properties.Settings1.Default.Sekunden.ToString());
                    sw.Flush();
                }
                else
                {
                    Properties.Settings1.Default.Datum = DateTime.Today.ToShortDateString();
                    Properties.Settings1.Default.Sekunden = 0;
                    Properties.Settings1.Default.Save();
                }
                sw.WriteLine("PreTimer");
                sw.Flush();
                timer1.Enabled = true;
                timer1.Start();
                sw.WriteLine("PostTimer");
                sw.Flush();
            }
            catch (Exception ex)
            {
                MessageBox.Show("OnStart: " + ex.ToString());
                sw.WriteLine("OnStart: " + ex.ToString());
                sw.Flush();
            }

        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            try
            {
                if (System.Security.Principal.WindowsIdentity.GetCurrent().Name.Contains(username) || Environment.UserName.Contains(username))
                {
                    Properties.Settings1.Default.Sekunden += 1;
                    Properties.Settings1.Default.Save();

                    sw.WriteLine(Properties.Settings1.Default.Sekunden);
                    sw.Flush();
                    
                }
                else
                {
                    sw.WriteLine("FALSE: " + System.Security.Principal.WindowsIdentity.GetCurrent().Name);
                    sw.Flush();
                }
            }
            catch (Exception ex)
            {
                sw.WriteLine("OnTick: " + ex.ToString());
                sw.Flush();
                MessageBox.Show("OnTick: " + ex.ToString());
            }
        }

Egal wo Log-Eintraäge werden immer geschrieben außer im Timer ... so als wenn dieser nie ausgeführt wird.

Auch die Sekunden in meiner Settings-Datei bleiben immer 0.

Ich stehe jedenfalls auf'en Schlauch.... als Windows-Form-Anwendung funktioniert es super.

Mit freundlichen Grüßen
Crone

Thema: Rette die Million Quizgame [==> Bitte keine "Hier ist mein Projekt, sucht ihr die Fehler"-Threads]
Am im Forum: Rund um die Programmierung

Zitat von free7umper
Bitte keine unverschämten und freche Antworten von euch.

Wie wäre es den mit keine unverschämten und frechen Fragen von dir?

Ich glaub du hast so ziemlich gegen alles verstoßen was in den Regeln steht ... C-C-C-ComboBreaker :D

Du solltest deine Frage überarbeiten sonst wird dir glaube ich keiner helfen.

Aber ich kam nicht drum rum mir das mal kurz anzuschauen.

Du solltest dringend mal folgendes Buch durcharbeiten... Visual C# 2012 Galileo Computing

sowas wie "goto" verwendet man nicht mehr und auch im Allgmeinen scheint dein Code ein heilloses durcheinander zu sein.

MFG
Crone

Thema: Threads: Gibt es Unterschiede zwischen Windows 8 / Windows XP?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

wie beendest du den den Thread?

Ich hoffe nicht mit .Abort().

Thema: [erledigt] Generische Typen vergleichen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke für die beiden Antworten, sehr nutzlich ;)

Thema: [erledigt] Generische Typen vergleichen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Okay hab doch noch eine Lösung gefunden.

        static bool Compare<T>(T x, T y)
        {
            return x.Equals(y);
        }

Damit hat sich die Frage erledigt :)

Thema: [erledigt] Generische Typen vergleichen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen,

Ich möchte zwei Werte mit einander vergleichen dabei handelt es sich aber um Generische Typen.

Alle Daten sind in ein Dictionary<string, ArrayList> gespeichert

in der ArrayList ist nur ein Datensatz und wurde nur verwendet, da var und T nicht funktionieren.

Nun hab ich mir noch eine Methode erstellt die anhand des Key's im Dictionary das Value sucht und dieses in meinen Gewüschten Datentyp zurück gibt.

private bool Check<T>(string key, T oldValue)
{
    if(GetValueFromDictionary<T>(key) != oldValue)
    {
    }
}

Fehler
Der Operator "!=" kann nicht auf Operanden vom Typ "T" und "T" angewendet werden.


Weiß jemand wie ich diese zwei Werte vergleichen kann?
oldValue und Value sind immer vom gleichen DatenTyp der DatenTyp kann aber immer ein anderer sein.

Danke

Mit freundlichen Grüßen
Crone

Thema: Schließen von Forms führt zum Absturz der Anwendung
Am im Forum: GUI: Windows-Forms

wie Programmierhans schon gesagt hat, liegt es vermutlich an einer Foreach-Schleife in der du die Collection veränderts z.B. durch .Add() oder .Remove().

Wenn du in einer Schleife die entsprechende Collection verändern willst solltest du lieber eine FOR oder WHILE-Schleife verwenden.

Ohne weiteren Code lässt sich jedenfalls nicht weiter helfen bzw. genauere Aussagen treffen. :)

Gruß
Crone

Thema: Serialize IPEndPoint
Am im Forum: Netzwerktechnologien

Ja ich verwende UDP.

IPEndPoints lassen sich grundsätzlich übertragen nur die variable "Adress" des IPEndPoints wird auf null gesetzt.

Auf übertragungsfehler würde ich es jetzt nicht schieben sonst wäre das Problem glaube ich nicht immer an der selben stellen.

Warum das im Lan funktioniert und im Internet nicht ist mir auch ein Rätsel :)

Im Lan kann ich so wie du ohne Probleme De-/Serialisieren aber mit .Net 4.0

Naja ich sende nun die IP und den Port als Variablen mit und bau mir daraus den IPEndPoint auf der anderen seite selbst zusamme... das funktioniert wenigstens :)