Autor Beitrag
Nuckey
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 78



BeitragVerfasst: Do 15.09.11 17:08 
hio,
habe hier ein kleinen verständnissproblem,am besten ein beispiel vorran.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
public static class IOTest
{
    static bool Read( this IOClass class,StreamRead sr)
    {

      return true;
    }
}


public class IOClass
{
  public void irgendwas()
 {
    using (StreamRead sr .......)

    this.Read(sr); // Aufruf der statischen funktion von IOTest
 } 
}

gut bisher alles im grünen berreich,jetz möchte ich aber die funktion Read einen Delegaten übergeben
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
  
public delegate bool ReadFnc(StreamRead sr);

public class IOClass
{
   void Test()
   {
     ReadFnc fnc = this.Read(sr);
   }
}

//Irgendwo  
using(streamread sr .............)

if(fnc != null)
 fnc(sr);


und hier ist mein knackpunkt,eigentlich müste ich doch die instanz am delegaten mit übergeben mit folgender argumentenkette (this,sr) ? ,also sprich obwohl ich ein funktionskopf habe mit 2 argumenten ,funz die funktion per delegaten trotzdehm mit einen ,wie das ?


mfg nuckey

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 15.09.11 17:33 
Edit : Beitrag geändert war Unfug ;)

Du kannst die Zuweisung nicht mit konkreten Parametern machen dann wäre es ja bereits der Funktionsaufruf du willst aber nur eine Referenz auf die Methode also eher

ausblenden C#-Quelltext
1:
ReadFnc fnc = this.Read;					



Edit2 : Und deine Read Extension Method sollte besser public sein sonst wäre die Menge der möglichen Nutzer doch ausgesprochen klein ;)
Nuckey Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 78



BeitragVerfasst: Do 15.09.11 19:48 
ist ja nur ein beispiel ;)

trotzdehm funzt es ohne das ich dehm delegaten die instanz übergebe.

ich nehme an das intern die instanz beim aufruf mit übergeben wird .

mfg nuckey