HDSoftware Skrevet 16. juli 2008 Del Skrevet 16. juli 2008 Heisan Fant ikke dette i MSDN (mulig jeg ikek søkte på rett sted da jeg søkte på ?) Noen metoder blir definert med ? etter datatypen. Som slik: MinMetode(int? pParm) Hva betyr dette? Det kan jo ikke være Optional fordi dette ikke er støttet i C#, så hva kan det være da? Kan det være en slags VAR datatype som i utgangspunktet forventer en INT? Høres jo rart ut, men det er det nærmeste jeg klarer å gjette og da er det godt jeg har dere gutta vettu ;-) Ole Lenke til kommentar
j000rn Skrevet 16. juli 2008 Del Skrevet 16. juli 2008 (endret) type? betyr egentlig bare nullable<type>. Dette betyr bare at de kan være NULL. Int som er en value type kan egentlig ikke være det, men med å wrappe dem i nullable<> så får de lov til å være NULL. int? Tall = null; er egentlig: nullable<int> Tall = null; så... det har ikke noe med "prototype" å gjøre i det heletatt.... Endret 16. juli 2008 av jorn79 Lenke til kommentar
HDSoftware Skrevet 16. juli 2008 Forfatter Del Skrevet 16. juli 2008 Aha. Betyr det at jeg kan droppe parameteret eller må jeg sende inn NULL? Lenke til kommentar
HDSoftware Skrevet 16. juli 2008 Forfatter Del Skrevet 16. juli 2008 Emnetittelen i denne tråden er lite beskrivende for trådens innhold og det er derfor ingen god emnetittel. Jo bedre og mer beskrivende emnetittelen er, jo lettere er det for andre å skjønne trådens innhold og det vil være lettere å treffe den riktige forumbrukeren med det rette svaret. Ber deg derfor om å endre emnetittel slik at du unngår at en moderator stenger tråden. Vennligst forsøk å tenk på dette neste gang du starter en tråd, og orienter deg om hva vår nettikette sier om dårlig bruk av emnetitler.Bruk -knappen i første post for å endre emnetittelen. Tråden bryter også med tre-ords-regelen. (Dette innlegget vil bli fjernet ved endring av emnetittel. Ikke kommenter dette innlegget, men ta gjerne og dette innlegget når tittelen er endret, så vil det bli fjernet.) ??? Er det BOTTER som driver og sender disse meldingene eller?? Hvis ikke så får moderator ta seg sammen !!! Lenke til kommentar
j000rn Skrevet 16. juli 2008 Del Skrevet 16. juli 2008 Er det BOTTER som driver og sender disse meldingene eller?? Hvis ikke så får moderator ta seg sammen !!! :!: Aha. Betyr det at jeg kan droppe parameteret eller må jeg sende inn NULL? Du må nok sende med null ja. Lenke til kommentar
HDSoftware Skrevet 16. juli 2008 Forfatter Del Skrevet 16. juli 2008 (endret) Er det BOTTER som driver og sender disse meldingene eller?? Hvis ikke så får moderator ta seg sammen !!! :!: Aha. Betyr det at jeg kan droppe parameteret eller må jeg sende inn NULL? Du må nok sende med null ja. Ja påkker heller! Dette er andre gang dette skjer. Forrige gang stillte jeg et spørsmål som omhandlet Choose kommandoen ? som velger ett av to alternativer på bakgrunn av et uttrykk. Bare fordi emnetittelen har ? i stedet for teksten SPØRSMÅLSTEGN. Det er for dumt, og håper derfor at modereringen er gjort av en BOT. men hvis moderator synes dette er en dårlig emnetittel, bare fordi programmering er et ukjent tema så får mod. bare stenge tråden. Jeg har fått svar på spørsmålet jeg ;-) Endret 16. juli 2008 av HDSoftware Lenke til kommentar
j000rn Skrevet 16. juli 2008 Del Skrevet 16. juli 2008 Det VIKTIGSTE er å ha minst 3 ord. At overskriften faktisk skal være fornuftig er tydeligvis ikke så nøye... Lenke til kommentar
enden Skrevet 16. juli 2008 Del Skrevet 16. juli 2008 Dette er faktisk en vanlig måte å omgå regelen på. For folk som ikke kan programmering er det sikkert ikke så greit å ta det ut av kontekst, og da går det kanskje litt fort. Lenke til kommentar
HDSoftware Skrevet 16. juli 2008 Forfatter Del Skrevet 16. juli 2008 Dette er faktisk en vanlig måte å omgå regelen på. For folk som ikke kan programmering er det sikkert ikke så greit å ta det ut av kontekst, og da går det kanskje litt fort. Skjønner det, men er det ikek et poeng at moderatoren bør være en person som har innsikt i forumets tema? Jeg mener, C# er ganske spesifikt, og da bør moderator(ene) være C# programmerer. I det minste bør personen ha grunnleggende kunnskap i programmering. Nesten alle karakterene man treffer med SHIFT og TALL gir mening i C# og burde derfor ikek bli moderert, med mindre selve meldingen bryter med retningslinjene. Lenke til kommentar
Dotten Skrevet 16. juli 2008 Del Skrevet 16. juli 2008 Litt OT her, men vi har globale moderatorer. Med over 200 kategorier. Vi kan ikke ha over 200 moderatorer, ei heller finne moderatorer som har kunnskap innen hvert bidige felt. En ærlig feil, som ga noen av oss en liten latter Lenke til kommentar
HDSoftware Skrevet 16. juli 2008 Forfatter Del Skrevet 16. juli 2008 Litt OT her, men vi har globale moderatorer. Med over 200 kategorier. Vi kan ikke ha over 200 moderatorer, ei heller finne moderatorer som har kunnskap innen hvert bidige felt. En ærlig feil, som ga noen av oss en liten latter Ok. Skal ikke dra dette så mye lenger og ser poenget ditt. Bare det at dette minner så veldig om auto moderering, nettop fordi moderator ikke leser innlegget i det hele tatt. Synes moderator bør ta seg tid til å lese meldingen før moderering. I dette tilfellet var selve meldingen rimelig selvforklarende, og en som ikek har programmeringskunnskap ville uten problemer sett at emnetittelen hadde mening. Og du - Å finne en eller flere moderatorer for hver kanal burde ikke være noe stort problem. Mange frekventerer kanalene titt og ofte, ja noen ser til og med ut til å bo i dem ;-) Mye bedre å ha fag kompetente moderatorer en noen som bare svinger innom for å se om det er noen meldinger de kan stoppe. Det minner litt for mye om norske myndigheter ;-) Lenke til kommentar
The Jackal Skrevet 1. august 2008 Del Skrevet 1. august 2008 forøvrig mulig og ha optional parametere ved å bruke params keyword: void Metode(params int[] param) { //Do something } ------------------------------- Metode(1,2,3,4,5); Metode(); ------------------------------- Det er noen limits med dette, men det fungerer sånn ca ok. Lenke til kommentar
Manfred Skrevet 1. august 2008 Del Skrevet 1. august 2008 En ganske dårlig løsning, egentlig. Da denne kun kan ta en type, med mindre du bruker object[] params, som blir en litt VEL grisete måte å gjøre det på. Men jeg savner den muligheten bl.a. C++ har til default-verdier på parametre... Har irritert meg grønn over at det ikke går i C# flere ganger. Lenke til kommentar
The Jackal Skrevet 1. august 2008 Del Skrevet 1. august 2008 Som sagt, noen limits Lenke til kommentar
HDSoftware Skrevet 1. august 2008 Forfatter Del Skrevet 1. august 2008 En ganske dårlig løsning, egentlig. Da denne kun kan ta en type, med mindre du bruker object[] params, som blir en litt VEL grisete måte å gjøre det på. Men jeg savner den muligheten bl.a. C++ har til default-verdier på parametre... Har irritert meg grønn over at det ikke går i C# flere ganger. Jeg er også vandt til å kunne prototype med default parametere i Clarion Der kunne jeg prototype slik: MinProc PROCEDURE(long EnlangEn, <string EnStreng>, byte EnByte = 5) den midterste er rett og slett omittable som defaulter til NULL og den siste er default verdi. Så kunne jeg i koden sjekke med OMITTED() funksjonen slik: if OMITTED(2) ! Andre parameter er omittet End!If if Omitted(EnByte) ! EnByte parameteret er omitted End!if Men når dette er sagt, så er jo C# måten egentlig ganske grei da. dA HAR MAN FAKTISK VELDIG GOD KONTROLL PÅ NÅR TING SKJER OG MAN (påkkers capslock) kan håndtere alle situasjoner på en veldig bra måte Lenke til kommentar
HDSoftware Skrevet 1. august 2008 Forfatter Del Skrevet 1. august 2008 Som sagt, noen limits Synes den ser interresant ut jeg. Mener å hja sett noe tilsvarende i et C++ prosjekt jeg så vidt var borti en gang. Er det ikke noe slik som prototype med ... i C++ ? Lenke til kommentar
Glenn F. Henriksen Skrevet 6. august 2008 Del Skrevet 6. august 2008 (endret) Standard måten å ha metoder med "defaultverdier" er å bruker method overloading. Slik void MinProc(long enLangEn, string enStreng, byte enByte) {...} void MinProc(long enLangEn, byte enByte { MinProc(enLangEn, "default", enByte); } Man kan og bruke nullable typer men da krever det at den som skal bruke metodene må enten bruke nullable typer eller caste de når metoden kalles. Endret 6. august 2008 av wallatu Lenke til kommentar
HDSoftware Skrevet 6. august 2008 Forfatter Del Skrevet 6. august 2008 Standard måten å ha metoder med "defaultverdier" er å bruker method overloading. Slik void MinProc(long enLangEn, string enStreng, byte enByte) {...} void MinProc(long enLangEn, byte enByte { MinProc(enLangEn, "default", enByte); } Man kan og bruke nullable typer men da krever det at den som skal bruke metodene må enten bruke nullable typer eller caste de når metoden kalles. Jada. Vet om overloading og slikt. Jeg blei vel litt interresert i den varianten med variabelt antall parametere av en og samme type. Har jo sett dette tidligere i et C++ program jeg har tuklet litt i Lenke til kommentar
Manfred Skrevet 6. august 2008 Del Skrevet 6. august 2008 Hadde vi ikke visst om method overloading ville kanskje spørsmålet vårt vært litt annet? Og som HDSoftware sier, så kan man sette default-verdier i C++ og slikt.. Jeg har løst det i en funksjon som dette: public string myFunc(string tekst, int? var) { int myVar = var ?? 240; } Lenke til kommentar
Glenn F. Henriksen Skrevet 7. august 2008 Del Skrevet 7. august 2008 Hadde vi ikke visst om method overloading ville kanskje spørsmålet vårt vært litt annet? Det er mulig, jeg bare påpekte at et av problemene med å bruke nullable verdier er at man legger en føring på bruken av funksjonen. Når du lager en funksjon som tar int? bare fordi den skal ha en defaultverdi krever du at når du skal bruke den funksjoen må du enten bruke int? typen selv, caste til int? eller skrive inn en null som ikke har noen funksjon. Personlig synes jeg at method overloading i de fleste tilfeller gir et mye renere grensesnitt og utfører akkurat det samme. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå