übergebe eine Referenz an den
die andere klasse
sprich
public class Klass {
public static void main(String[] args) {
Frame frame = new Frame(this);
}
}
public class Frame {
private Klass klass;
public Frame(Klass klass) {
this.klass = klass;
}
}
Somit kannst du über die als Member abgelgte Referenz klass
immer auf öffentliche Methoden zugreifen.
Andere Techniken währe innere Klassen usw.
@Shade
Naja, das Abschweifen von der eigentlichen Frage ist ein generelles "Problem" welches hier in den meisten Threads zu beobachten ist. Ich sehe das so, dass Gregor überhaupt nicht vorhatte pAngels Frage zu beantworten. Viel mehr wollte er murphs Aussagen korrigieren. Murphs hat C# schöngeredet, da konnte er die Aussagen nur dämpfen. Wirklich negativ waren seine Argumente ja nicht.
Klar wir kennen Gregor als verfechter der Javaprogrammierung, allerdings sind seine Aussagen auch nicht falsch. Ich finde es völlig ok, hier einen Vergleich zu Java herzustellen, da die beiden Programmiersprachen in der selben Liga spielen sollen. Meinetwegen könnte hier ncoh jemand Smalltalk rein schmeisen..... auch ok.
Zu den C#-Projekten. Ich kenne eine Firma, die mit C# entwickelt. Daher glaube ich schon, dass die Sprache im Kommen ist. Ob sie sich durchsetzen wird... keine Ahnung... ich bleibe der Sprache gegenüber mal offen... frage mich nur, wann ich mir mal C# anschauen werde...
Viele Grüße
hallo,
ich habe ein problem mit dem insert in eine db.
OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
DataTable dt = ds.Tables["list"];
DataRow rw ;
rw = dt.NewRow();
DataRow rw = dt.NewRow();
rw["id"] = "22222";
rw["stelle"] = "Dummy";
dt.Add(rw);
OleDbCommand myAccessCommand = new OleDbCommand(String.Format("INSERT INTO kostenstelle (id, stelle) VALUES ('{0}','{1}')", rw[0], rw[1]), conn);
da.InsertCommand = myAccessCommand;
da.Update(ds);
tablemapping oder datatable kann nicht gefunden werden.
habe schon etliches ausprobiert.
vielleicht kann ja einer helfen.
gruß
hans
so hält er nach jedem SCHLEIFEN durchgang..
aber sag mal genauer, was du willst,
using System;
using System.Threading;
class MainClass
{
public static void test()
{
for(int x=0;x<10;x++){
Console.WriteLine("prozess: " + x);
Thread.Sleep(2000);
}
}
public static void Main(string[] args)
{
Thread myThread = new Thread(new ThreadStart(test));
myThread.Start();
}
}
Original erstellt von ThiefMaster:
#include gibt es ja leider in c# nicht
NICHT????
Also, soweit wie ich das verstanden habe braucht man kein #include. Verbessert mich wenn ich Mist labere aber ich glaube man muss nur oben in der Datei angeben welche namespaces man verwendet (mit using) so dass die includes redundant werden... (Hab mich aber auch erst kurz mit C#-Projekten auseinander gesetzt)
[ Dieser Beitrag wurde am 28.01.2003 um 08:04 Uhr von MaSTaH editiert. ]
Inzwischen hab ich den Fehler entdeckt:
Es liegt daran, dass ich meine Library InstallerLibs.dll einbinde.
Wenn ich das using InstallerLibs; weglasse, geht das Beenden.
Aber warum geht es mit der Lib nicht???
Dann solltest du aber auch alles lesen. Das hört nämlich folgendermaßen auf:
You STILL have to have an executable on the client side to initialize the download. Unfortunately, you can't Auto- Deploy the application through a web page - bummer.
ich hatte gestern das gleiche problem... und folgendermaßen gelöst:
a) dem projekt eine resource hinzufügen (datei/neu/neue datei/misc/leere resourcen-datei)
b) dieser datei das icon hinzufügen und abspeichern als 'MainForm.resources'
c) sofern nicht automatisch geschehen, dem combine diese datei als resource bekanntmachen und als 'Build-Action' 'EmbedAsResource' wählen
d) in meiner MainForm.cs steht nun:
System.Resources.ResourceManager resources = new System.Resources.ResourceManager("MainForm", System.Reflection.Assembly.GetCallingAssembly());
this.Icon = (System.Drawing.Icon)resources.GetObject("nameDerIconResource");
ich hoffe, dass das weiterhilft.
[mfg: marc-a.prowe]
[ http://www.virtuelle-maschine.de ]
Original erstellt von mimi_fifi:
**Wie kann ich den Konstruktor der Vater Klasse dem Konstruktor der Child Klasse vererben?
**
Der Konstruktor der "Vaterklasse" wird automatisch aufgerufen, wenn du eine Instanz einer abgeleiteten Klasse erstellst. Sind aber in der "Vaterklasse" mehrere Konstruktoren vorhanden, kannst du steuern, welchen die Childklasse aufrufen soll:
class BaseClass
{
private int a;
public BaseClass()
{
a = 0;
}
public BaseClass(int b)
{
a = b;
}
}
class ChildClass : BaseClass
{
private int z;
//Dieser Konstruktor ruft BaseClass.BaseClass() auf
//Alternativ: "public ChildClass() : base() {...}"
public ChildClass()
{
z = 0;
}
//Dieser Konstruktor ruft BaseClass.BaseClass(int b) auf, "a" in BaseClass wird also
//auf b gesetzt, das "z" in der Childklasse ebenso.
public ChildClass(int b) : base(b)
{
z = b;
}
}
HTH,
Ferly
[ Dieser Beitrag wurde am 09.01.2003 um 14:18 Uhr von Ferly editiert. ]
[ Dieser Beitrag wurde am 09.01.2003 um 14:18 Uhr von Ferly editiert. ]
Ich habs ein bisschen über umwege gemacht.
Ebend grade fertig gefrickelt.
Ich hab mir mein dll "Rahmen" im VC6 gebaut. Den kram dann in meine .NET IDE kopiert. Dann alles mögliche in der Befehlszeile ausprobiert und es irgendwann hinbekommen den kram insofern als dll kompilieren zu lassen, das ich wenigstens meine heissgeliebten fehlermeldungen schonmal kriege.
Falls diese Variante nicht funktionieren sollte, versuche ich nochmal deinen Vorschlag.
Danke dir!
Greetz
Bel