Entwickler-Ecke
Basistechnologien - Wie komm ich an diese Variable ran?
benstar - Di 02.03.10 21:44
Titel: Wie komm ich an diese Variable ran?
Hallo,
ich habe hier mal eine abgeleitete Klasse geposted.
Ich muss auf der Ebene von Ice.Application auf das Array intreceived aus der ClockDisp_ zugreifen.
Kann mir bitte jemand helfen wie ich da ran komme? Alle Versuche von mir sind soweit gescheitert.
Alle Wege sind mir recht, hauptsache ich kann den Wert verwenden...
Vielen Dank für alle Tips
Ben
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| public class App : Ice.Application { public class ClockI : ClockDisp_ { public override void tick(string date, Ice.Current current) { System.Console.Out.WriteLine(date); string[] stringreceived = date.Split(','); int[] intreceived = new int[stringreceived.Length]; for (int ii = 0; ii<= stringreceived.Length - 2; ii++) { intreceived[ii] = int.Parse(stringreceived[ii]); } System.Console.WriteLine(intreceived); } } |
Moderiert von
Christian S.: ">" von Zeilenanfängen im Quelltext entfernt
Ralf Jansen - Di 02.03.10 22:33
intreceived ist eine Methodenvariable die ist nur gültig innerhalb der Methode und damit von außerhalb unerreichbar.
Entweder du machst daraus eine Klassenvariable von ClockI oder, da Tick in einer Clock Klasse sich nach einem regelmäßig auftretenden Event anhört, werfe in Tick wiederum einen Event mit dem Wert von intreceived in den EventArgs. An diesen kannst du dich dann von außen registrieren und bekommst regelmäßig denn aktuellen Wert von intreceived;
Crosspost [
http://www.mycsharp.de/wbb2/thread.php?threadid=81784]
benstar - Fr 05.03.10 21:56
Hi, also ich hab das mal mit den events probiert, aber ich komme auch nicht an den event in der anderen klasse dran.
kann mir jemand sagen wie ich auf den event moveit zugreifen kann.
oder kann ich irgendwie sonst auf myevnetargs Message zugreifen?
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92:
| public class MyEventArgs : EventArgs { private string m_Message = ""; public string spub =""; public MyEventArgs(string Message) { } public string Message { get { return m_Message; } } } public delegate void Movemyarray(object sender, MyEventArgs ee);
public class Subscriber {
protected string[] args; protected App app = null; public FormNew myForm = null; public Subscriber(string[] a) { setArgs(a); } public int getvalues() { int i; i=1; return i; }
public void setArgs(string[] a) { args = a; }
public void setFormHandle(FormNew form) { myForm = form; }
public void shutdown() { app.subscriberStop(); } public class App : Ice.Application { public class ClockI : ClockDisp_ { public event Movemyarray moveit; public override void tick(string date, Ice.Current current) { System.Console.Out.WriteLine(date); moveit(this, new MyEventArgs(date));
} |
norman2306 - Fr 05.03.10 23:33
Mach doch einfach dein intreceived global:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| public class App : Ice.Application { public static int[] intreceived = null;
public class ClockI : ClockDisp_ { public int[] intreceived = null; public override void tick(string date, Ice.Current current) { System.Console.Out.WriteLine(date); string[] stringreceived = date.Split(','); intreceived = new int[stringreceived.Length];
for (int ii = 0; ii<= stringreceived.Length - 2; ii++) { intreceived[ii] = int.Parse(stringreceived[ii]); } System.Console.WriteLine(intreceived); } } |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!