Avatar billede simsen Mester
07. september 2011 - 23:35 Der er 3 kommentarer og
1 løsning

Overload forståelse

Hej,

Jeg forsøger at forstå overload. I C# er det sådan, at ændrer man antal input og/eller output parametre, så laver man en overload af en metode eller ændrer input/output parametre værdierne (integer til string f.eks).

Nu forsøger jeg så at gøre det samme i Delphi.

Først i publish delen:

procedure Replace(fromStr, toStr: String; var strNewText: String; var strCount: Integer); overload;
      procedure Replace(fromStr2, toStr2: String; somethingElse: Integer; var strCount2: Integer); overload;

Kører jeg dette - får jeg følgende fejlmeddelelse:
Only one of a set of overloaded methods can be published


Forsøger jeg mig med

procedure Replace(fromStr, toStr: String; var strNewText: String; var strCount: Integer); overload;
      procedure Replace(fromStr2, toStr2, somethingElse: String; var strCount2: Integer); overload;

Får jeg følgende fejlmeddelelse:
Method 'Replace' with identical parameter already exists.

I begge har jeg ændret antal af input parametre og antal af output parametre og endda ændret parametrenavnene.....

Så hvorfor vil ingen af dem køre?
Avatar billede arne_v Ekspert
08. september 2011 - 00:21 #1
Only one of a set of overloaded methods can be published

er jo ret klar - du kan putte en af dem i published og resten i public.

Det er en restriktion i Delphi.
Avatar billede arne_v Ekspert
08. september 2011 - 00:23 #2
Method 'Replace' with identical parameter already exists.

er fordi at Delphi tilsyneladende ignorerer var i denne sammenhaeng (og Delphi ignorerer naturligvis navnene), saa de faktisk er ens:

Replace(String,String,String,Integer)
Avatar billede simsen Mester
08. september 2011 - 10:46 #3
Se nu lærte du mig lige, man ikke bare skal gå ud fra ting.......

Da jeg så published var min tanke nemlig...nå da, jeg ikke har læst om hvad det er noget sted, så er det sikkert en klasses public område.....

Nu har jeg så googlet mig frem og kan se det er lig med reflection i .Net.....og har med RTTI at gøre.

Tak for hjælpen og smid et svar :-)
Avatar billede arne_v Ekspert
08. september 2011 - 14:53 #4
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester