Laden...
Avatar #avatar-3200.jpg
unconnected myCSharp.de - Member
Softwareentwickler Oerlinghausen/NRW Dabei seit 13.08.2006 849 Beiträge
Benutzerbeschreibung

Forenbeiträge von unconnected Ingesamt 849 Beiträge

29.03.2009 - 21:50 Uhr

Hallo an alle.

Also ich finde schon, das das new Schlüsselwort durchaus seine daseins Berechtigung hat.

Man nehme einer Abstrakte Klasse die Abstrakte InputDaten hat



public abstract class AbstractIrgendwas
{
      public virtual AbstractIrgendwasInputData InputData {get; set;}

      public abstract void MachWas()
}

public abstract class AbstractIrgendwasInputData 
{
}

Dann haben wir noch eine ableitung davon



public class DefaultIrgendwas : AbstractIrgendwas
{    
     public override void MachWas()
    {
          Console.WriteLine( ((DefaultIrgendwasInputData) InputData).DefaultValue ) // Dieser Cast müsste hier immer wieder passieren -> unschön, da ich ja hier weiß das es sich um defaultInputDaten handeln muss.
    }
}

public class DefaultIrgendwasInputData : AbstractIrgendwasInputData 
{
   public int DefaultValue {get; set;}
}


Das gute am new Schlüsselwort ist ja, das man einen anderen Rückgabe Typen zurückgeben kann.



public class DefaultIrgendwas : AbstractIrgendwas
{    
    public new DefaultIrgendwasInputData InputData {get {return (DefaultIrgendwasInputData )base.InputData;}}

     public override void MachWas()
    {
          Console.WriteLine( InputData.DefaultValue ) // besser!! 
    }
}


ganz klar, man kann sich darüber streiten.. aber manchmal erleichtert es einem die Arbeit.

Grüße

18.02.2009 - 10:01 Uhr

Hi Gogonfa

hmm leider kann man T nicht so einschränken wie Du es brauchst..

schön wäre wenn so etwas funktionieren könnte: where T: operator+

Ich nehme an T als abstrakte Klasse zu definieren Fällt aus? Wahrscheinlich willst du da eher nen Int oder Double reinschieben.. richtig?

05.02.2009 - 21:56 Uhr

Sicher geht das.

Du muss nur eine andere "Liste" erzeugen.

wenn du mit einem Identifier oder Key arbeiten möchtest ist Dictionary deine Klasse.

Da das aber eher Grundlagenwissen ist, verzichte ich hier auf ein Code Beispiel und verweise auf die msdn.

19.01.2009 - 12:06 Uhr

Da habt ihr natürlich völlig recht.

Da er in der Methode aber 2 Zufallszahlen erzeugt, denke ich, das er auch genau 2 pro user eingabe braucht. Wenn er die Methode natürlich in einer ms mehrere male aufruft bekommt er die selben Zahlen.. ganz klar.

19.01.2009 - 11:48 Uhr

Hi JAck30lena,

das ist so nicht richtig.. er erzeugt das Random Object mit dem parameterlosen Konstruktor.

Zitat Msdn:

Initialisiert eine neue Instanz der Random-Klasse unter Verwendung eines zeitabhängigen Standardstartwerts.

Wenn er new Random(0) geschrieben hätte, hättest Du natürlich recht.

Gruß

Jan

07.01.2009 - 14:44 Uhr

Du hast eigentlich nur begrenzte Möglichkeiten das Ende festzustellen. Zwei davon hat jaensen jetzt genannt. Eine dritte ist auf eine feste Länge zu warten(hab ich selbst schonmal programmiert) Allerdings ist dann zu empfehlen einen Timeout zu implementieren.

Gruß

22.11.2008 - 14:38 Uhr

Hmm, sehr interressant.. warum fangt ihr die Exception nicht, und beendet das Programm sauber? Naja ihr werdet schon wissen was ihr tut.

20.11.2008 - 17:49 Uhr

Dann musst Du raufinden was an dem einem % anders ist.
Lass dir die gesamte Exception inclusive Stacktrace in das log ausgeben.

Ihr solltet euch mal gedanken um ein ausführliches Exception Handling machen. Denn wenn dieser angesprochnene Dialog kommt, ist das imho ein Programmierfehler. Eine stabile Anwendung darf sich nie so beenden (zumindest nicht nach einem erfolgreichen start). Es sollte immer noch ein eigener Fehlerdialog kommen, und das ganze weggeloggt werden.

13.11.2008 - 07:03 Uhr

Keine Ahnung.. aber mich würd generell interessieren warum man das wohl machen will??

05.11.2008 - 13:35 Uhr

Hallo,

also soweit ich weiß geht Linq unter .Net 2.0 nur mit einigen Tricks und dann auch nur wenn VS2008 läuft. Linq2Sql läuft unter 2.0 garnicht.

12.10.2008 - 12:28 Uhr

Hallo,

also generell solltest du, wenn du ein Event feuerst vorher auf null prüfen.


if (CSHARPEvent != null)
    CSHARPEvent();

was ich denke was dein eigentliches Problem ist: bei show wird das Fenster geöffnet aber er bleibt nicht in deiner Prozedur er geht mit return raus. Da aber deine Variabeln alle Local deklariert sind, sind sie somit ungültig. Also wird dein Event wieder abgehängt und ist null.

26.09.2008 - 10:24 Uhr

du könntest alle deine Vergleichswerte in eine Liste oder ein Array packen und Contains aufrufen.

19.09.2008 - 10:09 Uhr

@Trib

da man aus dem Int kein TimeSpan machen kann.

das ist so nicht richtig. TimeSpan hat eine Menge an statischen Methoden. Wenn dein int Tage enthält kannst du z.B. so was schreiben:


TimeSpan x = TimeSpan.FromDays(i);

Gruß

17.09.2008 - 13:21 Uhr

und am besten noch using(){}

10.09.2008 - 16:17 Uhr

Annahme:

Du serialisierst mit einem Programm und Deserialisierst mit einem Anderen, und hast LCA.XML.SMF.DoSMFFile 2x implementiert?

edit: hiermit ziehe ich diesen Beitrag zurück 🙂 hab die erste Zeile überlesen.

09.09.2008 - 13:50 Uhr

Also, wie schon gesagt kannst die Reihenfolge nicht ändern.

Aber beschreib doch mal den Hintergrund.. Was du damit machen möchtest und warum es genau in dieser Reihenfolge passieren muss.

08.09.2008 - 15:22 Uhr

Hallo Roxx,
ich habe zwar keine Ahnung was bei dir da falsch läuft, aber in der Praxis hat sich herausgestellt das Lösungen mit einer Managed C++ Wrapper dll sich meist stabiler und einfacher gestallten. Einfach weil C++ besser mit den c Typen umgehen kann.
Ist vllt. nicht immer der Fall, aber ich bin so immer besser gefahren.

03.09.2008 - 14:46 Uhr

Ich glaub ihr habt den Mann grundsätzlich falsch verstanden.. oder ich hab ihn falsch verstanden 🙂

ich glaube bezogen auf den vorigen Post möchte er, das Bar() aus Foo3 nicht mehr aufzurufen ist.

Das funktioniert übrigens nicht, es sei den die Ableitung ist in einer anderen dll.
Dann kann man die Funktion als internal definieren.

edit2:

Ich hab mir das ganze nochmal durchgelesen.. möchtest du die Funktion überhaupt von aussen aufrufen können? dann ist private dein Schlüsselwort.

01.07.2008 - 15:54 Uhr

Hallo Nergal,

das ist eine Sicherheitsfunktion der Serialisierung, damit kein murks beim Deserialisieren passiert. Die Standartvorgehensweise ist hier die zu Serialisierende Klasse in eine eigene dll zu packen und von beiden Programmen auf diese zu referenzieren.

Das hat auch den Vorteil das du die Klasse nur einmal pflegen musst und nicht immer ganz genau drauf achten musst, immer beide Klassen zu ändern.

19.06.2008 - 16:19 Uhr

Hallo zommi,

du hast hier einen kleinen Aspekt übersehen.

AbstractOrganizationalUnit ist wie der Name schon sagt abstract. Du kannst also keine Instanz davon erzeugen. Sonst würde die gesamte sache mit dem <T> ja schon von Haus aus Sinnlos sein.

Gruß

edit: Um eventuell noch flexibler (nicht schöner) eine Create Methode zu bauen (falls die subklassen jeweils andere Daten brauchen) könntest du sowas machen:


public Abstract class AbstractFupp
{
public abstract void Create (params object[] parameter);
}

public class SubFupp : AbstractFupp
{
public override void Create(params object[] parameter)
{
   mach was mit den params
}
}

12.06.2008 - 16:18 Uhr

Da wirst du das Umfeld noch ein wenig genauer erklären müssen..

liegt Assembly2 vielleicht nicht neben Assembly1 oder in den Standart suchpfaden?
hat Assembly2 vielleicht seinerseits referenzen zu anderen Assemblys?
Gibts vielleicht eine InnerException die das ganze Aufklärt?

Gruß

06.06.2008 - 09:19 Uhr

Hallo,

oder eine Abhängigkeit davon wurde nicht gefunden

versuch mal den DependencyWalker -> Google anzuwerfen, und schau welche Dll´s er eventuell nicht finden kann.

Gruß

27.05.2008 - 13:52 Uhr

Ja. Wenn du die declaration (Objekt myObjekt = new Objekt(); ) in die Schleife verschiebst passt es.

Du solltest aber überlegen ob du nicht direkt in die Objecte mappen möchtest Stichwort: O/R Mapper. Erst in ein Dataset zu füllen und dann daraus Objecte erstellen ist recht unperformant und nicht sehr speichersparend.

Eventuell sind Typisierte Datasets was für dich.. hängt aber vom Anwendungsfall ab.

27.05.2008 - 10:23 Uhr

Bist du sicher das der ObjektSuchbegriff den du deiner Combobox addest immer ein verschiedenen Wert hat? Da könnt der Hund begraben sein.

21.04.2008 - 20:20 Uhr

Danke für die Antworten,

ich werd mir alles mal anschauen 🙂 und mich dann wieder melden

20.04.2008 - 09:55 Uhr

Hallo Blackcoin, danke für die Antwort.

Ok, ich hab verstanden das diese Gadgets sehr wenig mit Forms.. also eigentlich gar nichts zu tun haben.

Es sind also html seiten.. bekomme ich hieraus irgendwie c# dlls aufgerufen? Vllt. über Com Objecte etc? Ich denke daran so eine Art GetPicture() funktion einzubauen und dieses Bild dann im Html anzuzeigen. Ist das möglich?

Wie sind denn Gagets wie zum Beispiel diese CPU / Memory Anzeige aufgebaut?

19.04.2008 - 16:10 Uhr

Ich wollte unter c# ein Vista Gadget programmieren. Könnt ihr mir gute tutorials in diese richtung empfehlen?

21.02.2008 - 09:28 Uhr

Hallo,

Ich hab mal ne Frage zu c++ dlls,

Kann man irgendwie programmatisch in C#(oder Commandozeile) abprüfen ob eine c++ dll im debug gebaut wurde?

Ich Danke für jeden anstoss.

21.01.2008 - 15:44 Uhr

Um alternativen aufzuzeigen müssten wir glaub ich mehr Infos zu deinem Problem haben..

Schon überlegt in der Klasse in der der Bw läuft einfach nen bool flag anzulegen?


if(_shouldSleep)
    Thread.Sleep(10);

04.01.2008 - 19:35 Uhr

Zu deinen Edits :

1: Nein ich denke nicht das 32K Bytes Array zu einer OutofMemory Exception füren da du davon ja nur einen anlegst und diesen immer wieder befüllst. Wir reden hier ja vom MB

2 : Ich denke da suchst du am falschen Platz.

  • Du hast die Daten eventuell komplett im Stream -> ich weis ja nicht was für ein Stream deswegen eventuell. -> 70 MB
  • Am schluss hast du die Daten komplett im MemoryStream -> 70 + 70 = 140 MB
  • Dann erzeugst du daraus ein Array 70 + 70 + 70 = 210 MB
04.01.2008 - 19:29 Uhr

du hast deine Daten jetzt auch 2-3 mal im Speicher...

Ich weis jetzt nicht von welchem Typ stream ist.. aber die meisten haben funktionen wie readToEnd damit sparst dir schonmal 70MB für den Memory Stream.

Wenn das nicht funktionier würde ich mir an deiner Stelle mal das yield statement anschauen

Du nimmst als rückgabewert IEnumerable<byte> und liest deinen Stream byte für byte aus. und gibst jedes Byte mit yield return byteVariable zurück. <- meiner meinung nach das speichersparenste konzept. Aber ich weis nicht wie es mit der Performance aussieht.

03.01.2008 - 19:25 Uhr

Du musst versuchen in deinen Klassen USerControl und Form die selbe Instanz zu benutzen.

Das geht über viellerlei Möglichkeiten.. von der Form die SuperCom Instanz des UserControls setzen oder andersrum, statische Variblen, Singleton etc.

03.01.2008 - 18:27 Uhr

Dein Problem ist das du in deiner Form und in deinem UserControl jeweils eine neune Instanz von SuperCom erstellst. Deswegen kommt das Event niemals in deinem UserControl an.

Du löst das Event von Instanz 1 aus, hast aber das Event von Instanz 2 abonniert.

03.01.2008 - 09:14 Uhr

Oder um es zu vervollständigen mit dependencyWalker (depends.exe) Ich schätze es liegt wirklich an einer nicht gefundenen dll.

Hast du vielleicht die beiden dlls nicht neben die anwendung oder in einen der searchpaths (system32) etc. kopiert? Oder vielleicht gegen das 3.x Framework kompiliert und auf xp nur das 2.0 drauf?

Gibt echt viele möglichkeiten. Lass mal depends laufen und berichte von seiner ausgabe.

30.12.2007 - 18:32 Uhr

Also falls du hier nochmal liest, denke ich das herbivore mit dem Design auf ein client / server basiertes System anspielt genauso wie ich auch (Würde ich zumindest so machen..).

Solltest hier vielleicht nach den stichworten Service und Remoting suchen.

Hier ist vielleicht ein Request - Response Modell zu denken

User stempelt
Client schickt request zum Server
Server schreibt in die Datenbank
Server schickt Response inkl. Uhrzeit.
Client zeigt gestempelte uhrzeit an..

das der Client direkt sqlbefehle zum server schickt halte ich eher für ungünstig, da der client so username und pw der datenbank kennen muss etc.

19.12.2007 - 20:43 Uhr

Hallo budi1602

Ich würde glaube ich gar nicht auf die Client Zeit zurückgreifen und dem Server direkt die Anfrage senden, der kann dann mit seiner eigenen Zeit Arbeiten. (ich denke das Serverseitig auch ein Program von dir läuft?). falls die Verbindung reißt würde ich im Request nur die Timespan mitgeben die seit des Stempelns vergangen ist.

17.12.2007 - 20:23 Uhr

Die Exception spricht für sich würde ich sagen. Entweder sind die Remoteverbindungen disabled, die Netzwerkprotokolle abgschaltet, ne Firewall dazwischen etc..

13.12.2007 - 18:40 Uhr

Hi,

ein paar mehr Informationen wären toll..

Wie sieht es z.B. mit der Prozessorauslastung und dem Speicher aus?

Ausserdem würde ich um die Transaction ein using bauen.

01.12.2007 - 14:18 Uhr

Hmm sollen in einer Instanz deiner Klasse StammKatForm mehrere verschiedene ableitungen von DbContainer möglich sein oder immer nur eine? wenn immer nur eine Ableitung pro Instanz möglich sein soll würde ich das so lösen



public class StammKatForm<T> where T: dbObject
{
  private  dbContainer<T> m_katalog;

  public StammKatForm(string _text, dbContainer<T> _katalog)
  {
   this.Text = _text;
   m_katalog = _katalog;
  }
}


17.10.2007 - 19:47 Uhr

Es handelt sich hier nicht zufällig um einen Cluster Server oder? die haben imho keine CPU Id

17.10.2007 - 19:45 Uhr

Wenn SOurceSafe solche Problem bringt.. solltet ihr vielleicht auf andere Programme wie CVS oder SVN umsteigen.

17.10.2007 - 19:16 Uhr

hmm Oxygen..,

naja für Fehler würde ich eher ein vernünftiges Exception Handling vorschlagen.. (da ist der Stacktrace schon drin..). Die Exception kann man dann inkl Stack ausloggen. Was das "normale Logging" angeht.. würde ich warscheinlich direkt am Entstehungsort den String zusammenbauen.. Das mit this durchschleifen ist wahrscheinlich garkeine so schlechte Idee.

//edit: ausserdem könnt dich die Klasse MethodBase interressieren..

15.10.2007 - 18:36 Uhr

Manchmal sehen unicode Zeichen gleich aus aber haben andere Byte muster.. aber das würde nicht erklären warum 0 und nicht -1 kommt.. sehr merkwürdig

25.09.2007 - 18:36 Uhr

@tscherno: warum denkst du ist das schmutzig? bis auf die tatsache das die initialisierung wirklich in der Mitte der Klasse passiert sehe ich nichts schmutziges..

04.09.2007 - 09:25 Uhr

also ich komme mit base oder this (oder auch ohne Prefix) an meine Methode Fupp dran.. da ist was anderes Faul.. bist sicher das du von der Klasse erbst?

04.09.2007 - 08:12 Uhr

Hallo,


 public class BaseClass<T>
    {
        private IBusinessClass<T> _fupp;

        public IBusinessClass<T> Fupp
        {
            get { return _fupp; }
            set { _fupp = value; }
        }
    }

Wäre das ne option für deine Basisklasse?

würdest du dann in der abgeleiteten so setzten


public class DerviedClass : BaseClass<EmployeeBE>
    {
        public DerviedClass()
        {
            Fupp = microkerneletc.
        }
    }

26.08.2007 - 10:30 Uhr

Hallo kolli

---Enable Glaskugel.... Glaskugel enabled!!

Ich denke das es ein Problem mit den machwas Methoden gibt. Wenn die Fehler nicht auftreten wenn du sie einmal aufrufst, treten sie vielleicht bei mehrfachem Aufrufen auf.

ansonsten können wir Dir wahrscheinlich nichts sagen wenn wir nicht den Code von den Machwas Methoden sehen..

20.08.2007 - 20:48 Uhr

Benutzt du eine BindigSource? dann versuchs mal mit:


_source.EndEdit();

bevor du speicherst...

05.08.2007 - 12:30 Uhr

Probier mal einen delegate zu übergeben. Das hat bei mir zumindest gefluppt..

oder schreib dir einen C++ Wrapper. das geht meistens besser als mit dll Import zu arbeiten.

31.07.2007 - 21:01 Uhr

Int.Parse("1"); ....