Da wird dir nix anderes übrig bleiben als das Image auszutauschen. Oder leite dich von Button ab, dann baust du dir einen Mechanismus, das du im Enable gleich false, das Image holst, dann ein GrayScale draus machst, und neu zuweist. Siehe dazu hier. Dann kannst du den Button einfach verwenden, und musst dich um nix mehr kümmern.
Okay das war ein ziemlich blöder versteckter Fehler. Das entsprechende Value wurde vom Serializer als Enum interpretiert. Das hatte zur Folge das ein Enum natürlich kein { und } haben darf. Deswegen kam auch immer das value ohne die { und } zurück.
Mit einem kleinen Test Programm habe ich es auch grad noch mal nach getestet. Dort funktioniert es auch ohne Probleme. Ich hab mir jetzt noch mal die originale XML angeschaut, die ist in UTF-8 ohne BOM codiert. Eventuell liegt da der Fehler.
Ich sehe Floste's Vorschlag Zielführend. Im Hintergrund der Trackbar einen Grünen Balken Zeichnen, der die Position anzeigt sodass die Summe 100 ergeben würde. Ist nicht weiter kompliziert und der User wird nicht irritiert wenn sich auf einmal die anderen Trackbars bewegen.
Ich versteh irgendwie das Problem nicht. Meiner Meinung nach ist die von gfoidl vorgeschlagene Lösung die beste. Definiere ein Interface, ein Modi Enum und dann jeweils eine konkrete Klasse zu jeweils einem Modi. Dann Erstell eine Factory Klasse die dann einen Modi entgegen nimmt, und eine Instanz zurück gibt die dem gegebenen Modus entspricht. Factory Pattern
Das Programm startet immer. Das ist nicht dein Problem. Dein Problem ist der Programmablauf. Das Programm macht genau das was du programmiert hast, nämlich die Main Methode betreten, Hallo Welt auf die Console schreiben, und dann die Main Methode wieder verlassen. Das verlassen der Main Methode hat zur Folge das auch die Console geschlossen wird. Wie n0TabR0 bereits geschrieben hat hilft dir ReadKey weiter.
gefunden und das scheint zu funktionieren. Denn die TestFixtures müssen ja alle nach außen sichtbar sein. Wenn jemand noch was besseres einfällt, immer her damit.
ich habe mehrere NUnit Test Assemblies. Aus diesem möchte ich gern alle TextFixture's extrahieren. Dieses mache ich derzeit wie folgt.
Assembly assembly = Assembly.LoadFile(pathAssembly);
Type[] types = assembly.GetTypes();
foreach (Type type in types)
{
object[] attrbiutes = type.GetCustomAttributes(true);
foreach (object attribute in attrbiutes)
{
if (attribute.GetType() == typeof(TestFixtureAttribute))
{
testFixtures.Add(type.FullName);
break;
}
}
}
Jedoch bekomme ich eine Exception bei manchen NUnit Tests bei
assembly.GetTypes();
Zitat
Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
Dies Typen sind in anderen Assemblies definiert. Diese liegen aber parallel zu der Test Assembly. Diese sollten also geladen werden können!
Gibt es noch eine andere Möglichkeit alle TextFixtures eines NUnit Tests zu extrahieren, ohne die Assembly zu laden, bzw. wie kann ich beim laden der Assembly alle Dependecies auf einen Pfad verlinken.
Wenn du an den neu Hinzugefügten Nodes ein select mit der alten Node machst, dann ist doch logisch dass das nicht geht. Du brauchst einen ident, weil die neu erzeugte Node hat doch einen anderen HashCode als die alte. Also musst du dir an deine TreeNode ne Art Id bauen, z.B. an das Tag Property. Und beim selektieren, alle Nodes durch laufen, und schauen ob eine dabei ist die die gleiche Id hat.
Wenn jede abgeleitete Klasse ein spezifisches Objekt braucht, warum gibts die Methode dann in der Basisklasse?
Es dient nur dafür das eine gewisse Structure eingehalten wird. Klar ich könnte auch ein Interface Implementieren für diese Init Methode, oder gar kein Interface und die Init einfach public in jede Klasse schreiben, aber ob das besser ist sein mal da hin gestellt.
Zitat
Was würde deiner Meinung nach passieren, wenn du...
Das würde ja nicht gehen, denn MyDerived1 sollte nur Bar's initialisieren können. Wobei wir wieder beim Thema der generischen Klasse wären, den wenn die Klasse den Typ einschränkt macht das schon wieder Sinn.
Genau die Syntax habe ich gesucht. Jetzt stellt sich also nur noch die Frage was nun besser geeignet ist. Die Klasse selbst hält dieses T nicht, im Init wird das Object nur genommen um einige Services zu laden, es wird nicht gespeichert.
Daher Klasse generisch oder Methode generisch?
public class MyClass1
{
public void virtual Init<T>(T parameter)
{
}
}
public class MyClass2 : MyClass1
{
public override void Init<T>(T data)
{
//wie kann ich hier das T einschränken?
}
}
public override void InitStructure<T>(T data) where T : object
//das geht nicht
public override void InitStructure<int>(int data)
//das geht auch nicht
Mir ist klar das es auf die weise funktioniert wie Lector es beschrieben hat. Ich dachte man kann eine Methode einer Klasse generisch machen, ohne die Klasse generisch zu definieren. Weil das in meinem UseCase gereicht hätte. Aber nach genaueren drüber nachdenken ist das eigentlich schon richtig so. Weil die Init Methode initialisiert die Klasse mit einem Bestimmten Typ. Also sollte die Klasse auf den Typ beschränkt sein und damit generisch definiert werden.
ich steh grad ein bisschen auf dem Schlauch. Ich hab eine Basis Klasse die mehrere virtual Methoden hat. Unter anderem eine void Init(object data). Nun erben mehrere Klassen diese Klasse und implementieren natürlich auch die Init Methode. Nun ist aber in den Unterklassen das object genauer spezifizierbar, daher dort sollte nicht object data zugelassen werden, sondern ein spezieller Type.
Kann ich die Init Methode der Basisklasse den Typ "data"(object) generisch angeben, ohne die ganze Basisklasse generisch machen zu müssen? Oder muss die ganze Basisklasse generisch definiert werden und in den unterklassen mit where T ... eingeschränkt werden?
public class Test<T>
{
public virtual Init(T data)
{
}
}
du solltest wie MarsStein bereits erwähnt hat dir 'noch' mal die Grundlagen anschauen. Für solche einfach selber zu lösenden Probleme ist diese Forum eigentlich nicht gedacht...
Jepp das wurde bereits getan, nur ging die Diskussion wegen dem Lock los.
Danke für die schnelle Info. Ich glaub jede simple lese sowie schreibaktion eines Feldes kleiner oder gleich 32 Bit ist atomar.
wir haben grad eine Diskussion bezüglich des locken's von Operationen. Daher muss man in einem Thread das setzen und lesen eines bool mit lock absicher? Ich dachte immer atomare Operationen muss man nicht locken, jetzt stellt sich natürlich die Frage ob das setzen bzw. lesen eines bools in c# eine atomare Operation ist.
ich habe ein Problem beim laden einer PDB. Und zwar möchte ich folgendes machen. Wir haben pdb files in denen die source files drin stehen, diese aber auf der Maschine wo die gebaut worden liegen. Wir haben die source files local kopiert, jedoch passen die dann zur Laufzeit nicht mehr zu dem Pfad. Was wir also möchten ist folgendes.
Ich möchte die PDB's auslesen, und dort dann die Pfade auf die Sourcen ändern, daher die Filenamen bleiben erhalten, jedoch nicht die Pfade. Jetzt wollt ich mir einen ISymbolReader holen und als input das pdb File geben. Jedoch bekomm ich da immer die Exception dass das File corrupt: HRESULT: 0x8013110E. Das heißt ich muss immer den Reader für die dazu liegende Assembly laden.
Das Problem ist das die nicht paralell liegen. Warum kann ich keinen Reader nur für das PDB laden? Ist mein Vorhaben überhaupt so realisierbar?
Ergänzung zu gfoidl, auf dem Zeilrechner muss mindestens die Version installiert sein, die für die Assembly erforderlich ist. Daher eine mit einem .net 2.0 Compiler kompilierte Assembly muss mit einer .net 4.0 Runtime laufen.