[alg] Slechtste programmeervoorbeelden deel 4 Vorige deel Overzicht Laatste deel

Dit topic is onderdeel van een reeks. Ga naar het meest recente topic in deze reeks.

Pagina: 1 ... 36 ... 103 Laatste
Acties:
  • 993.659 views

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-10 16:38

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ergo, de naamgeving klopt en er is dus niets mis mee :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024

CMG

Verwijderd schreef op vrijdag 24 september 2010 @ 15:16:
[...]

Wij maken daar al jaren grapjes over op het werk als het gaat om programmeren. Je moet een programmeertaal hebben die gewoon snapt wat je wil zeggen. De syntax zou dan zoiets zijn:

Doe gewoon ff een loopje en dan iets met die variabele, je weet wel.

Zou toch wel mooi zijn als we in de toekomst computersystemen hebben die snappen wat we bedoelen zonder rare beperkingen in de overdracht tussen concept en realisatie.
Nou, geef mij maar C#, als je moet gaan praten tegen je compiler wordt 't een beetje zoals LOLCODE :)

code:
1
2
3
4
HAI
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
KTHXBYE

...
Wikipedia: LOLCODE

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 17:35
Jij hebt dus nog nooit cobol gezien? ;)

Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 04-10 09:54

Sebazzz

3dp

CMG schreef op vrijdag 24 september 2010 @ 17:21:
[...]


Nou, geef mij maar C#, als je moet gaan praten tegen je compiler wordt 't een beetje zoals LOLCODE :)
Het liefst een taal die zo min mogelijk verbose is, dus vaak C-style ja :)

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Voor zover ik me kan herinneren was Shockwave ook zo`n taal, iig toen ik het gebruikte. Weet niet eens meer hoe het heet

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Acties:
  • 0 Henk 'm!

  • b2vjfvj75gjx7
  • Registratie: Maart 2009
  • Niet online
Guillome schreef op vrijdag 24 september 2010 @ 23:49:
Voor zover ik me kan herinneren was Shockwave ook zo`n taal, iig toen ik het gebruikte. Weet niet eens meer hoe het heet
lingo

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

-

[ Voor 99% gewijzigd door CodeCaster op 25-09-2010 14:38 . Reden: Wrong topic :+ ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Grijze Vos schreef op vrijdag 24 september 2010 @ 14:12:
Mensen klagen wel vaker over PHP's eigenzinnigheid, maar Python kan er ook wat van. A if B else C? Wat is er mis met de standaard ternary operator zoals we die kennen?
Niks, maar PHP implementeert hem natuulijk net iets anders dan C (als je ze nest).

Verwijderd

Geneste ternaries :-( Zoo lelijk.

  • YopY
  • Registratie: September 2003
  • Laatst online: 02-10 16:55
Verwijderd schreef op vrijdag 24 september 2010 @ 15:16:
Wij maken daar al jaren grapjes over op het werk als het gaat om programmeren. Je moet een programmeertaal hebben die gewoon snapt wat je wil zeggen. De syntax zou dan zoiets zijn:

Doe gewoon ff een loopje en dan iets met die variabele, je weet wel.
Gelukkig spreekt de opdrachtgever die taal en ben jezelf de interpreter die het omzet naar iets functioneels :+. De performance is om te huilen, maar aan het eind van het traject komt het toch nog af.

Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

In een oud script van mezelf:

code:
1
$zero = 0 #Don't ask. Just... don't.


:')

Maar ik had blijkbaar wel ook door dat het gek was.

En ik was deze vergeten :+ :

code:
1
2
3
4
5
6
7
8
 $christmas = 0
 $easter    = 1
 Do
    {
    Main-Script
    Start-Sleep $loop
    }
 Until ($christmas -EQ $easter)

[ Voor 35% gewijzigd door YellowOnline op 26-09-2010 15:19 ]


Acties:
  • 0 Henk 'm!

  • theemstra
  • Registratie: December 2008
  • Laatst online: 28-08 16:39
<?php
$md5 = "geheimwachtwoordgeneratie01189998819991197253";
$md5_2 = "TheITCrowd";
$test = md5($md5+$md5_2)
$test2 = "Dit_generatie_script_heeft_een_geneste_MD5_beveiliging";
$echo = md5($test+$test2);

echo $echo;
Hoezo nested MD5 8)7

Acties:
  • 0 Henk 'm!

  • theemstra
  • Registratie: December 2008
  • Laatst online: 28-08 16:39
if (1 != 0){
echo "Het einde der tijden is nog niet gekomen, 1 is nog geen 0"
}
Écht! Als 1 ineens 0 word, is alles verloren |:(

[ Voor 3% gewijzigd door theemstra op 26-09-2010 13:52 . Reden: Overdosis aan smileys weggehaald ]


Acties:
  • 0 Henk 'm!

Verwijderd

theemstra schreef op zondag 26 september 2010 @ 13:52:
[...]


Écht! Als 1 ineens 0 word, is alles verloren |:(
:D je zou wel kunnen zeggen dat de wereld ondertussen wel héél afhankelijk is van het feit dat computers onderscheid tussen de twee kunnen maken ;)

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-10 16:38

.oisyn

Moderator Devschuur®

Demotivational Speaker

Klinkt een beetje als http://thedailywtf.com/Ar...JavaScript-Detection.aspx
(was al eerder gepost)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • PiepPiep
  • Registratie: Maart 2002
  • Laatst online: 18-01-2023
Verwijderd schreef op vrijdag 24 september 2010 @ 15:16:
[...]

Wij maken daar al jaren grapjes over op het werk als het gaat om programmeren. Je moet een programmeertaal hebben die gewoon snapt wat je wil zeggen. De syntax zou dan zoiets zijn:

Doe gewoon ff een loopje en dan iets met die variabele, je weet wel.

Zou toch wel mooi zijn als we in de toekomst computersystemen hebben die snappen wat we bedoelen zonder rare beperkingen in de overdracht tussen concept en realisatie.
Dat gaat 'nooit niet' werken.

486DX2-50 16MB ECC RAM 4x 500MB Drive array 1.44MB FDD MS-Dos 6.22


Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 18:56

Dido

heforshe

YellowOnline schreef op zondag 26 september 2010 @ 13:36:
En ik was deze vergeten :+ :

code:
1
2
3
4
5
6
7
8
 $christmas = 0
 $easter    = 1
 Do
    {
    Main-Script
    Start-Sleep $loop
    }
 Until ($christmas -EQ $easter)
Nu kan de taal waar ik in werk gelukkig wel strings vergelijken, dus heb ik op een aantal plaatsen inderdaad dit in mijn code staan:
code:
1
2
3
4
5
Dowhile Cond('Easter *ne Whitsun')

*Hier ergens een exit-condition

Endwhile

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • jip_86
  • Registratie: Juli 2004
  • Laatst online: 18:55
Delphi:
1
2
3
4
5
6
7
8
9
if [Klasse bevat bepaalde parameter] then
  begin
    if not [booleanwaarde van die parameter] then
      DoeIets(True)
    else
      DoeIets(True);  
  end
else
  DoeIets(True);

Handig hoor 8)7

Acties:
  • 0 Henk 'm!

  • PiepPiep
  • Registratie: Maart 2002
  • Laatst online: 18-01-2023
Oh, maar dat is om 300% zeker te zijn dat het iets netjes gedaan wordt :D

486DX2-50 16MB ECC RAM 4x 500MB Drive array 1.44MB FDD MS-Dos 6.22


Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

jip_86 schreef op maandag 27 september 2010 @ 14:41:
Delphi:
1
2
3
4
5
6
7
8
9
if [Klasse bevat bepaalde parameter] then
  begin
    if not [booleanwaarde van die parameter] then
      DoeIets(True)
    else
      DoeIets(True);  
  end
else
  DoeIets(True);

Handig hoor 8)7
Ik ben wel benieuwd wat hier concreet de bedoeling was. Er moet toch een reden zijn dat hij/zij niet gewoon DoIets(True) :?

[ Voor 7% gewijzigd door YellowOnline op 27-09-2010 16:39 ]


Acties:
  • 0 Henk 'm!

  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 04-10 21:59
Misschien is doeiets() later gerefactord naar een stukje code wat alles kon wat de verschillende functieaanroepen die er eerder stonden ook allemaal deden? #wildguess

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


Acties:
  • 0 Henk 'm!

Verwijderd

PiepPiep schreef op zondag 26 september 2010 @ 15:44:
[...]

Dat gaat 'nooit niet' werken.
Want?

Acties:
  • 0 Henk 'm!

  • Flapmo
  • Registratie: April 2000
  • Laatst online: 04-10 13:28

Flapmo

and back is gigi!

Misschien doelt hij er op dat 'nooit niet' op twee manieren geinterpreteerd kan worden :?. Enerzijds lees jij het "menselijk" als "NOOIT" (versterking van nooit) maar een computer als "nooit - pauze - niet", dus dubbele ontkrachting, dus zeker wel :?.

Maar als je dan dat weer aanpast werken dubbele ontkrachtingen weer buggy. Onze taal is nogal fuzzy dus veel uitzonderingen. Misschien dat hij daar op doelde, al denk ik persoonlijk dat alles mogelijk is :).

Of denk ik nu te veel na over iets heel simpels en bedoelde hij gewoon NOOIT :p.

[ Voor 21% gewijzigd door Flapmo op 27-09-2010 16:57 ]

"The purpose of computing is insight, not numbers." -- Richard Hamming


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-10 16:38

.oisyn

Moderator Devschuur®

Demotivational Speaker

De reden dat het niet gaat werken is omdat we meestal niet weten wat we eigenlijk willen. Daar moeten developers die te maken hebben met klanten toch ook wel het een en ander van weten :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • jip_86
  • Registratie: Juli 2004
  • Laatst online: 18:55
YellowOnline schreef op maandag 27 september 2010 @ 16:39:
[...]


Ik ben wel benieuwd wat hier concreet de bedoeling was. Er moet toch een reden zijn dat hij/zij niet gewoon DoIets(True) :?
Ja dat vroeg ik me dus ook af. Documentatie maken doen we niet aan is het motto hier.

Acties:
  • 0 Henk 'm!

  • PiepPiep
  • Registratie: Maart 2002
  • Laatst online: 18-01-2023
Wat Flapmo zei.
Ik had nog niet eens gedacht over wat .oisyn zei.
Wat er ook nog eens bij komt is dat spreektaal constant aan het evolueren is. Niet alleen komen er nieuwe woorden bij als 'breezersletje' en sinds een collega het over oh oh cherso had ken ik ook het woord 'woknok', maar de spelling kan ook veranderen. We spreken geen Nederlandsch meer maar Nederlands.
Op mijn werk heb ik niet heel veel contact meer met de klanten, maar toen ik dat nog had hoorde ik soms termen die ik niet kende, dat zijn vooral aannemers. Zo hebben andere vakgebieden of andere delen van het land ook weer andere uitdrukkingen en woorden.

486DX2-50 16MB ECC RAM 4x 500MB Drive array 1.44MB FDD MS-Dos 6.22


Acties:
  • 0 Henk 'm!

Verwijderd

Vooralsnog heb ik alleen het argument van .oisyn als echt tegenargument gehoord. NIet weten wat je wil is altijd een blokkade tussen concept en realisatie.

Buiten dat heb ik niets gehoord omdat je de magische compiler kunt vervangen door onze eigen hersenen. Beperkingen die genoemd zijn zijn normaal geen grote beperkingen voor onze eigen hersenen, dus waarom zou een toekomstige compiler er dan ineens wel moeite mee hebben? Overschatten we dan onze eigen hersenen niet? Of zit daar juist de crux?

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-10 16:38

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ik denk dat daar juist de crux zit, precies om wat ik eerder al zei. Je denkt wel te weten wat je wil, maar eigenlijk is dat niet zo. Je kunt wel denken "oh dat moet zo en zo", maar de realiteit is vaak dat je allerlei cases daarmee nog niet hebt afgedekt. Ook heeft een computer niets aan vage grenzen. Iets als "niet te veel maar ook niet te weinig" is vaak vrij lastig te kwantificeren. Je zou een kopie moeten kunnen maken van je hersenen zodat het programma gewoon per geval at runtime adhv jouw gedachten dingen kan beoordelen, maar dan worden er uiteindelijk ook geen objectieve keuzes gemaakt.

[ Voor 34% gewijzigd door .oisyn op 27-09-2010 20:59 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Klopt, maar net zoals de tools van nu programmeurs helpen te programmeren kan de computer natuurlijk ook meehelpen en daarbij aangeven welke informatie nog niet bekend is. Zonder direct op detailniveau in te gaan.

Ook hoeft er natuurlijk geen perfecte software uit te komen, immers dekt het concept vaak ook niet alle cases af. Zoiets kan altijd later nog geperfectioneerd worden.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-10 16:38

.oisyn

Moderator Devschuur®

Demotivational Speaker

Oh ik zeg niet dat het niet kan helpen. Maar gewoon een gedachte "ik wil dit" en *poef* de applicatie is er gaat natuurlijk niet :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Laat Visual Studio aan de mannen zien die nog met ponskaarten werken en je hebt hetzelfde effect toch?

Zo kort door de bocht als poef zal het in de praktijk niet zijn, maar er zijn zeker nog flinke stappen te maken lijkt me.

Acties:
  • 0 Henk 'm!

  • yade
  • Registratie: Mei 2002
  • Laatst online: 16-07 13:47
C:
1
*KNIP*


@Caelorum Je hebt gelijk.

[ Voor 107% gewijzigd door yade op 27-09-2010 23:35 ]


Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 13:40
yade schreef op maandag 27 september 2010 @ 22:47:
C:
1
....


Vond ik op dit forum. ;)
*mompelt iets over waarschuwing onderaan de pagina*

Mooie dag vandaag. Kijk altijd weer uit naar de maandag. Eindelijk weer een dag waarop je de hele tijd kan zitten en staren naar code ^^

Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Caelorum schreef op maandag 27 september 2010 @ 23:14:
[...]

*mompelt iets over waarschuwing onderaan de pagina*

Mooie dag vandaag. Kijk altijd weer uit naar de maandag. Eindelijk weer een dag waarop je de hele tijd kan zitten en staren naar code ^^
In de zin van "verdorie, wat was weer de logica achter mijn code van vorige vrijdag"? :')

Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 17:35
Wat gebeurt hier?

C:
1
2
3
4
5
typedef unsigned char mystring; //WTF, ik weet het

void someFunction() {
  mystring testString[8] = "TESTING";
}

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-10 16:38

.oisyn

Moderator Devschuur®

Demotivational Speaker

Een compile error?
Mocht je "typedef" bedoelen, dan is testString een unsigned char[8] met als contents { 'T', 'E', 'S', 'T', 'I', 'N', 'G', 0 }

[ Voor 78% gewijzigd door .oisyn op 28-09-2010 16:04 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 02-10 16:55
.oisyn schreef op maandag 27 september 2010 @ 21:50:
Oh ik zeg niet dat het niet kan helpen. Maar gewoon een gedachte "ik wil dit" en *poef* de applicatie is er gaat natuurlijk niet :)
Zoals ik eerder zei: wel, als het de chef is die zijn gedachten in woorden omzet en aan jou als ontwikkelaar vertelt :+. De *poef* is misschien niet instant, maar komt wel. En voor de baas is het toch bijna magie als hij er geen verstand van heeft, dus hetzelfde effect kun je halen. :+.

en met typdedef kun je een type ontdefiniëren, bijvoorbeeld als je eerder een typedef mystring hebt kun je die later typdedeffen.

Een andere verklaring is dat het een typedef in het verleden is (typde, verleten tijd van type?), zodat je hem voordat je hem definieert al kunt gebruiken.

Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 17:35
.oisyn schreef op dinsdag 28 september 2010 @ 16:03:
Een compile error?
Mocht je "typedef" bedoelen, dan is testString een unsigned char\[8] met als contents { 'T', 'E', 'S', 'T', 'I', 'N', 'G', 0 }
Ik heb hem ge-edit. Als je er dit van maakt:
C:
1
2
3
4
5
6
typedef unsigned char mystring; //WTF, ik weet het

void someFunction() {
  mystring testString[8] ;
  testString = "TESTING";
}

wordt hij veel spannender (toch? *), maar volgens jou werkt dat bij initialisatie dus anders? In Java hoef je over dit soort dingen helemaal niet na te denken...

* allocatie van 8 bytes voor testString, waarna de pointer naar die array wordt overschreven door een pointer naar "TESTING" op een andere plek, als ik me niet vergis.

[ Voor 13% gewijzigd door MBV op 28-09-2010 17:07 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-10 16:38

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dan heb je de ene compile error vervangen door een andere. Een array is/heeft geen pointer. De assignment kan dus ook niet.

[ Voor 36% gewijzigd door .oisyn op 28-09-2010 17:17 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 17:35
Ik had onthouden dat in C een array niet veel meer is dan een pointer naar z'n eerste element, maar daarvoor moet je dus alsnog het adres pakken. De compile-error is trouwens dat hij de const-string "TESTING" niet kan converteren naar non-const (in C++-mode). In C-mode zegt hij " '=' : left operand must be l-value".

[edit]

C:
1
2
char test[8] = "TESTINGab";
char test2[8] = "TESTINGa";

test levert een warning op in visual studio (array bounds overflow), maar hij initialiseert het geheugen niet voorbij het randje. test2 levert geen warning op, maar laat de \0 dus wel weg :X

[ Voor 45% gewijzigd door MBV op 28-09-2010 17:47 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-10 16:38

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dan heb je dat verkeerd onthouden. Een array en een pointer zijn wezenlijk anders. Zo geeft sizeof(char[16]) 16 terug, terwijl sizeof(char*) gewoon de grootte van een pointer teruggeeft. In jouw voorbeeld heeft testString geen adres dat ergens opgeslagen staat. Je kunt het adres wel opvragen door 'm te converteren naar een pointer, en dan geeft de compiler gewoon het juiste adres naar het eerste element op de stack terug. Je kunt een array dus ook niet ergens anders naartoe laten wijzen - hij heeft immers geen adres dat aangepast kan worden, net als dat je het adres van een int niet kunt wijzigen. Er staan slechts 8 chars achter elkaar op de stack.

C++:
1
2
char a[] = "aap";
char * b = "aap";


De memory layout van dit stukje code ziet er als volgt uit:
C++:
1
2
3
0000 "aap\0"  // a
0004 "aap\0"  // string constant
0008 0x0004   // b


'b' is een pointer op adres 0x0008 die wijst naar adres 0x0004, waar een string literal staat. 'a' is gewoon een array van 4 chars, op adres 0x0000.

[ Voor 22% gewijzigd door .oisyn op 28-09-2010 17:52 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

MBV schreef op dinsdag 28 september 2010 @ 17:37:
C:
1
2
char test[8] = "TESTINGab";
char test2[8] = "TESTINGa";

test levert een warning op in visual studio (array bounds overflow), maar hij initialiseert het geheugen niet voorbij het randje. test2 levert geen warning op, maar laat de \0 dus wel weg :X
its not a bug, its a feature.

als je een string van 4 karakters (kaas) opslaat in een array van 4, dan kan dat gewoon, maar hij omit de \0 omdat hij ervan uitgaat dat je niet zomaar de lengte van een string gaat specificeren.
.oisyn schreef op dinsdag 28 september 2010 @ 17:47:
Dan heb je dat verkeerd onthouden.
onthouden? ik heb er nog nooit wat over gehoord op school (2e jaar TI) en ik ben toch een van de weinige die het concept van pointer écht snapt.

[ Voor 19% gewijzigd door Verwijderd op 28-09-2010 17:55 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-10 16:38

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verwijderd schreef op dinsdag 28 september 2010 @ 17:52:
[...]

its not a bug, its a feature.
Niet volgens de C++ standaard. In C mag het idd wel.
Verwijderd schreef op dinsdag 28 september 2010 @ 17:52:
onthouden? ik heb er nog nooit wat over gehoord op school (2e jaar TI) en ik ben toch een van de weinige die het concept van pointer écht snapt.
Het gaat hier mis bij het concept van een array, niet het concept van een pointer.

[ Voor 77% gewijzigd door .oisyn op 28-09-2010 17:58 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

ik kan me een blog herrineren van nog voordat ik fatsoenlijk C kon waar dat werd aangeprezen als "feature", niet een bijster handige feature, maar toch.

edit: hierboven stond eerst wat anders.

[ Voor 13% gewijzigd door Verwijderd op 28-09-2010 18:06 ]


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 17:35
Verwijderd schreef op dinsdag 28 september 2010 @ 17:52:
onthouden? ik heb er nog nooit wat over gehoord op school (2e jaar TI) en ik ben toch een van de weinige die het concept van pointer écht snapt.
Toch wel onthouden. Want wat is hiervan de output?

C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
#include "stdio.h"

void myFunc2(char x[])
{
  x[5] = '_';
  return;
}

int _tmain(int argc, _TCHAR* argv[])
{
  char test2[8] = "TESTING";
  printf("%s", test2);
  myFunc2(test2);
  printf("%s", test2);
  return 0;
}

(getest in VC++, gecompileerd als C-code)

spoiler:
TESTINGTESTI_G, by-value meegeven van een array gedraagt zich alsof je een pointer meegeeft. En daardoor was ik in de war :X

[ Voor 5% gewijzigd door MBV op 29-09-2010 11:14 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-10 16:38

.oisyn

Moderator Devschuur®

Demotivational Speaker

de x in myFunc2 is daar van het type char*, niet char[]. Arrays kun je niet by value doorgeven ;). Zou ook niet logisch zijn, myFunc2() kan nooit weten hoe lang de array is. Je kunt overigens wel void myFunc2(char x[8]) declareren, maar die declaratie is equivalent. Het is dus hoogstens wat extra documentatie, de compiler doet er niets mee.

In C++ kun je wel een daadwerkelijke reference naar een array meegeven. De signature wordt dan void myFunc(char (&x)[8]). Het voordeel is dat je ook daadwerkelijk alleen maar een array van lengte 8 mee kan geven.

[ Voor 98% gewijzigd door .oisyn op 29-09-2010 11:23 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 17:35
Tja, ik heb dus nog steeds last van een 'trauma' uit 1e jaar HBO. Opdracht: "Geef de waarden in een array terug zonder pointers te gebruiken", waarbij ze dus bovenstaande structuur wilden zien :X En daardoor heb ik dus altijd gedacht dat test2 een pointer is...

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-10 16:38

.oisyn

Moderator Devschuur®

Demotivational Speaker

Als dat de opdracht was dan is de oplossing de array in een struct gooien, die kun je wel by value doorgeven en returnen ;)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 17:35
Die kwamen pas 2 lessen later :P

Verwijderd

MBV schreef op woensdag 29 september 2010 @ 11:05:
[...]

Toch wel onthouden. Want wat is hiervan de output?

C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
#include "stdio.h"

void myFunc2(char x[])
{
  x[5] = '_';
  return;
}

int _tmain(int argc, _TCHAR* argv[])
{
  char test2[8] = "TESTING";
  printf("%s", test2);
  myFunc2(test2);
  printf("%s", test2);
  return 0;
}

(getest in VC++, gecompileerd als C-code)

spoiler:
TESTINGTESTI_G, by-value meegeven van een array gedraagt zich alsof je een pointer meegeeft. En daardoor was ik in de war :X
TESTINGTESTI_G

bij een string vind ik het overigens duidelijker om gewoon * te gebruiken in plaats van []

maar ik heb toch het idee dat veel mensen bij mij in de klas achterlopen, men neme de volgende opdracht:
bereken de parity over 8 bits opgeslagen in een 9*9 array, na 2 uur waren er nog steeds mensen bezig.

mag ik even 5 minuten van mijn tijd verspillen?
code:
1
2
3
4
5
6
7
int arr[9][9] = <9 rijen en klommen met bits, waarvan de laatste telkens leeg (daarin moet je de pairity opslaan, ge-inverteerd)>

for(int y = 0; y < 9; y++)
 for(int x = 0; x < 9; x++) {
  arr[9][y] ^= arr[x][y] ^ !x;
  arr[x][9] ^= arr[x][y] ^ !y;
 }


klaar, in nog geen 3 minuten... daar doen mensen dus langer dan een blokuur over :F 2ejaars he.

trouwens, klopt het dat je in C geen reference & operator hebt? (als in: int& k=0;) ik had hem even nodig en de avr compiler gaf allemaal errors.

  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 10:01

Salandur

Software Engineer

Verwijderd schreef op woensdag 29 september 2010 @ 15:04:
[...]

TESTINGTESTI_G

bij een string vind ik het overigens duidelijker om gewoon * te gebruiken in plaats van []

maar ik heb toch het idee dat veel mensen bij mij in de klas achterlopen, men neme de volgende opdracht:
bereken de parity over 8 bits opgeslagen in een 9*9 array, na 2 uur waren er nog steeds mensen bezig.

mag ik even 5 minuten van mijn tijd verspillen?
code:
1
2
3
4
5
6
7
int arr[9][9] = <9 rijen en klommen met bits, waarvan de laatste telkens leeg (daarin moet je de pairity opslaan, ge-inverteerd)>

for(int y = 0; y < 9; y++)
 for(int x = 0; x < 9; x++) {
  arr[9][y] ^= arr[x][y] ^ !x;
  arr[x][9] ^= arr[x][y] ^ !y;
 }


klaar, in nog geen 3 minuten... daar doen mensen dus langer dan een blokuur over :F 2ejaars he.

trouwens, klopt het dat je in C geen reference & operator hebt? (als in: int& k=0;) ik had hem even nodig en de avr compiler gaf allemaal errors.
Deze code gaat best wel fout, want index 9 bestaat niet!


code:
1
2
3
4
5
6
7
int arr[9][9] = <9 rijen en klommen met bits, waarvan de laatste telkens leeg (daarin moet je de pairity opslaan, ge-inverteerd)>

for(int y = 0; y < 8; y++)
 for(int x = 0; x < 8; x++) {
  arr[8][y] ^= arr[x][y] ^ !x;
  arr[x][8] ^= arr[x][y] ^ !y;
 }

Assumptions are the mother of all fuck ups | iRacing Profiel


Verwijderd

oh :+

ook leuk om de verbaasde gezichten te zien waarneer je het Wikipedia: XOR swap algorithm toepast.

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Salandur schreef op woensdag 29 september 2010 @ 15:08:
[...]

Deze code gaat best wel fout, want index 9 bestaat niet!


code:
1
2
3
4
5
6
7
int arr[9][9] = <9 rijen en klommen met bits, waarvan de laatste telkens leeg (daarin moet je de pairity opslaan, ge-inverteerd)>

for(int y = 0; y < 8; y++)
 for(int x = 0; x < 8; x++) {
  arr[8][y] ^= arr[x][y] ^ !x;
  arr[x][8] ^= arr[x][y] ^ !y;
 }
Maar dan wel:
code:
1
2
y < 9
x < 9

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • EddoH
  • Registratie: Maart 2009
  • Niet online

EddoH

Backpfeifengesicht

Ja, met bovenstaande code weet je iig dat je niet zeker weet wat het resultaat is...... 8)7

(of begrijp ik hier iets niet goed? Vanwaar de ^= terwijl de array niet geinitialiseerd is?)

[ Voor 34% gewijzigd door EddoH op 29-09-2010 15:23 ]


  • terje7601
  • Registratie: September 2009
  • Laatst online: 08-02-2024
"Bewijs" van iemand die wil aantonen dat de empty string eigenlijk helemaal geen string is. Echt handig, die "User Contributed Notes" |:(

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php 
function fetchType($var) { 
    # Setup commonly used types (PHP.net warns against using gettype()) 
    switch ($var) { 
        case is_string($var): 
            $type='string'; 
            break; 

        case is_array($var): 
            $type='array'; 
            break; 

        ...

        default: 
            $type='unknown type'; 
            break; 
    } 
    return $type; 
} 
echo fetchType(''); # will output: array
?> 

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-10 16:38

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verwijderd schreef op woensdag 29 september 2010 @ 15:04:
klaar, in nog geen 3 minuten... daar doen mensen dus langer dan een blokuur over :F 2ejaars he.
Stoer hoor...
terje7601 schreef op woensdag 29 september 2010 @ 15:21:
"Bewijs" van iemand die wil aantonen dat de empty string eigenlijk helemaal geen string is. Echt handig, die "User Contributed Notes" |:(
Lol. Sowieso gaan die notes nergens over. Heb weleens verbeteringen van opmerkingen gepost, maar dat wordt dan weer afgedaan als "off topic" dus tegengehouden door de moderators |:(

[ Voor 49% gewijzigd door .oisyn op 29-09-2010 15:43 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 10:01

Salandur

Software Engineer

kenneth schreef op woensdag 29 september 2010 @ 15:12:
[...]

Maar dan wel:
code:
1
2
y < 9
x < 9
Nee hoor, want het 9 veld wordt gevuld in de loop.

Assumptions are the mother of all fuck ups | iRacing Profiel


  • PiepPiep
  • Registratie: Maart 2002
  • Laatst online: 18-01-2023
Verwijderd schreef op woensdag 29 september 2010 @ 15:10:
oh :+

ook leuk om de verbaasde gezichten te zien waarneer je het Wikipedia: XOR swap algorithm toepast.
Welke ik ook erg mooi vind is de fast bit reversal

486DX2-50 16MB ECC RAM 4x 500MB Drive array 1.44MB FDD MS-Dos 6.22


  • YopY
  • Registratie: September 2003
  • Laatst online: 02-10 16:55
Moet je wel natuurlijk net een toepassing hebben (net zoals met al die andere bit twiddling truukjes), wat in de praktijk 99% van de developers niet heeft.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 14:56
Nou ja, het komt wel eens voor, en dan is het handig om er een beetje raad mee te weten.

Het hangt ook erg af van je werkgebied. Als je je primair met embedded development of system programming bezighoudt zul je met regelmaat bitoperaties gebruiken. Als webdeveloper kom je het natuurlijk minder vaak tegen.

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Van 47 regels naar 1 regel in 1 post :D

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • PiepPiep
  • Registratie: Maart 2002
  • Laatst online: 18-01-2023
In mijn eigen code
Visual Basic .NET:
1
Left(NumeriekDeel, Len(NumeriekDeel))

Handig! ik heb geen idee wat ik hier van plan was :S

486DX2-50 16MB ECC RAM 4x 500MB Drive array 1.44MB FDD MS-Dos 6.22


Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 19:29

alienfruit

the alien you never expected

In mijn eigen code:

PHP:
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
// apply the text strategies for the renderer AFTER we stored the original input text
$originalText = $text;
$this->strategies = [];
$text = $this->executeTextStrategies( $text );

// determine the font measurements of the final text that needs to be renderered
$fontMetrics = $this->image->queryFontMetrics( $this->canvas, $text );

$alignment = $this->canvas->getTextAlignment();
switch ( $alignment ) {
    
    case imagick::ALIGN_CENTER:
        $originX = $this->textRectangle->width / 2;
        $originX = $originX - $this->textRectangle->x;
        break;
        
    default:
        $originX = $this->textRectangle->x;
        break;
}

$originTop = $fontMetrics['ascender'];
$originY = $originTop;
$originX = 0;

$this->canvas->annotation( $originX, $originTop, $text );


En ik maar afvragen waarom de tekst niet goed gecentreerd is... Ooops. Word wrapping werkte ook niet 8)7

[ Voor 3% gewijzigd door alienfruit op 01-10-2010 17:13 ]


Acties:
  • 0 Henk 'm!

  • boe2
  • Registratie: November 2002
  • Niet online

boe2

'-')/

kwam net een bizar stukje sql tegen (fictieve velden):
SQL:
1
2
SELECT veld1, veld2, GETDATE() as Expr1 FROM tabel
ORDER BY Expr1


wut :?

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind.' - Pratchett.


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 17:35
doe dan RANDOM() :P

Acties:
  • 0 Henk 'm!

  • Monkeydancer
  • Registratie: November 2005
  • Laatst online: 19:26
Freeaqingme schreef op maandag 27 september 2010 @ 16:43:
Misschien is doeiets() later gerefactord naar een stukje code wat alles kon wat de verschillende functieaanroepen die er eerder stonden ook allemaal deden? #wildguess
Dit kun je toch geen refactoring meer noemen? Als je aan het refactoren bent dan hoor je toch code te optimaliseren :P.

maar zal het niet handiger geweest zijn om comments te gebruiken/debug messages etc? Ik kan voorstellen dat mensen dit gemakkelijk over het hoofd zien, zoals mensen nu doen in dit topic. Als er commentaar erbij stond of iets in de trant van een berichtje op beeldscherm, dan was het voor ons allemaal geen raadsel meer geweest :+

Monkey business: pay peanuts, get monkeys


Acties:
  • 0 Henk 'm!

  • Marcj
  • Registratie: November 2000
  • Laatst online: 04-10 16:23
Verwijderd schreef op woensdag 29 september 2010 @ 15:10:
oh :+

ook leuk om de verbaasde gezichten te zien waarneer je het Wikipedia: XOR swap algorithm toepast.
heb je ook de link bij Note 2 gelezen? Leuk verhaal om aan te tonen dat het gebruik van een tijdelijke variabele vaak sneller is :)

Acties:
  • 0 Henk 'm!

Verwijderd

nu wel

maar dat hangt ook af van het platform waar je op werkt, op de Z80 bijvoorbeeld kan je alleen XOR'en met A (xor a,b, maar niet xor b,a), daar is een standaard swap sneller.

op de avr (atmega16) kan dat wel, is het even snel (EOR Rx, Ry, 1 clock per stuk), maar bespaart je wel die variabele :)

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Comment faal van mezelf:

PHP:
1
2
3
4
if($row == null) {
    // redirect to error controller
    $this->_redirect('/admin/error');
}

Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 11:39
Oud stukje faalcode wat ik ooit geschreven heb omdat $_GET somehow niet werkte...?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
         * Very dirty workaround to obtain URL parameter values because
         * retreiving values with $_GET doesn't work somehow.
         * How it works: it gets the part of the URL after the question mark (?)
         * and explodes the values on the and mark (&) to get all parameters.
         * Then the array is exploded again to get each parameter's value.
         * Finally it puts every value in a new array
         * @FIXME find a clean solution to retreive URL parameters
         */
        $url = $_SERVER['REQUEST_URI'];
        $arr = explode('&', $_SERVER['QUERY_STRING']);
        
        foreach ($arr as $key => $value) {
            $tmp = explode('=', $value, 2);
            $subarr[$tmp['0']] = $tmp['1'];
        }


Juist 8)7

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-10 16:38

.oisyn

Moderator Devschuur®

Demotivational Speaker

Geh, een workaround voor een bug waarbij je hoogstwaarschijnlijk $_GET eerder in de code al verneukte :P

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

.oisyn schreef op dinsdag 12 oktober 2010 @ 22:33:
Geh, een workaround voor een bug waarbij je hoogstwaarschijnlijk $_GET eerder in de code al verneukte :P
Maar dan wel op een hele omslachtige manier... Dat kan natuurlijk makkelijker... :+

Acties:
  • 0 Henk 'm!

  • BM
  • Registratie: September 2001
  • Nu online

BM

Moderator Spielerij
Ook vreemd commentaar op MSDN:
C#:
1
2
// Set the 'Method' property to "POST".
myHttpWebRequest.Method="PUT";

Wat is het nu? :? :P

Xbox
Even the dark has a silver lining | I'm all you can imagine times infinity, times three


Acties:
  • 0 Henk 'm!

  • Brummetje
  • Registratie: December 2003
  • Niet online

Brummetje

Ginkeltjes

BM schreef op woensdag 13 oktober 2010 @ 09:14:
Ook vreemd commentaar op MSDN:
C#:
1
2
// Set the 'Method' property to "POST".
myHttpWebRequest.Method="PUT";

Wat is het nu? :? :P
Volgens mij is dit niet zo vreemd aangezien POST niet kan en PUT hiervoor gebruikt wordt.

Acties:
  • 0 Henk 'm!

  • BM
  • Registratie: September 2001
  • Nu online

BM

Moderator Spielerij
Brummetje schreef op woensdag 13 oktober 2010 @ 12:03:
[...]


Volgens mij is dit niet zo vreemd aangezien POST niet kan en PUT hiervoor gebruikt wordt.
Uh?
The Method property can only be set to GET and POST methods. Any other HTTP 1.1 or 1.0 protocol verbs (HEAD, PUT, DELETE, TRACE, or OPTIONS, for example) will throw a NotSupportedException exception.

Xbox
Even the dark has a silver lining | I'm all you can imagine times infinity, times three


Acties:
  • 0 Henk 'm!

  • L-VIS
  • Registratie: April 2005
  • Laatst online: 03-10 12:04
Dan is het nog vreemder dat het een string is...

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Daar dacht ik ook al aan. Waarom geen enumeration?

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • TJHeuvel
  • Registratie: Mei 2008
  • Niet online
Je kan daar toch gewoon van alles in plempen, of de server het begrijpt is natuurlijk iets anders.

Http method definitions:
The set of common methods for HTTP/1.1 is defined below. Although this set can be expanded, additional methods cannot be assumed to share the same semantics for separately extended clients and servers.
Het is dus geen vaste lijst met methodes.

Freelance Unity3D developer


Acties:
  • 0 Henk 'm!

  • Lye
  • Registratie: Januari 2010
  • Laatst online: 18:12

Lye

Python:
1
2
3
4
5
def foo() {
    print "bar"
}

print foo()


en maar afvragen waarom er toch telkens een 'None' in mn terminal stond...

Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 19:24

RayNbow

Kirika <3

Lye schreef op woensdag 13 oktober 2010 @ 14:43:
Python:
1
2
3
4
5
def foo() {
    print "bar"
}

print foo()


en maar afvragen waarom er toch telkens een 'None' in mn terminal stond...
Python met accolades? :p

edit:
C:\> python
Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance
>>>

^ gerelateerd :p

[ Voor 35% gewijzigd door RayNbow op 13-10-2010 16:09 ]

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • L-VIS
  • Registratie: April 2005
  • Laatst online: 03-10 12:04
CyCloneNL schreef op woensdag 13 oktober 2010 @ 14:39:
Je kan daar toch gewoon van alles in plempen, of de server het begrijpt is natuurlijk iets anders.

Http method definitions:

[...]


Het is dus geen vaste lijst met methodes.
Dat klopt, maar het ging om de implementatie in .NET. Daar kan je dus maar 2 waardes ingooien.

Acties:
  • 0 Henk 'm!

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 04-10 12:10
Net kwam ik een leuke tegen :').

PHP:
1
{if $teller == 0 or  $teller == 4 or $teller == 8 }<tr valign="top">{/if}

toch maar even:
PHP:
1
{if ($teller % 4) == 0}<tr valign="top">{/if}

van gemaakt :).

Wie de syntax overigens niet kent, dat is Smarty ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Mwah, dat hangt natuurlijk geheel van de context af of dit correct is.

Hoewel de vergelijking origineel netter gemaakt kan worden is wat jij nu hebt gemaakt niet hetzelfde als wat er stond.

Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
Ja, maar in het origineel werkt het niet bij 12 en verder, maar na jouw aanpassing wel, is dat de bedoeling?

Acties:
  • 0 Henk 'm!

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 04-10 12:10
Verwijderd schreef op woensdag 13 oktober 2010 @ 16:24:
Mwah, dat hangt natuurlijk geheel van de context af of dit correct is.

Hoewel de vergelijking origineel netter gemaakt kan worden is wat jij nu hebt gemaakt niet hetzelfde als wat er stond.
Na elke vierde <td> moest er een extra tabel rij gemaakt worden.
Davio schreef op woensdag 13 oktober 2010 @ 16:24:
Ja, maar in het origineel werkt het niet bij 12 en verder, maar na jouw aanpassing wel, is dat de bedoeling?
Correct :).

Acties:
  • 0 Henk 'm!

  • Jan_V
  • Registratie: Maart 2002
  • Laatst online: 18:20
Oh heerlijk.
Een static method met die als parameter dezelfde naam heeft als een static member:
C#:
1
2
3
4
5
6
7
static List<CustomItem> _customItems;

//Code

private static void WriteToXmlFile<T>(List<T> _customItems, string fileName)
{
}

Dat moet voor problemen gaan zorgen...

Battle.net - Jandev#2601 / XBOX: VriesDeJ


Acties:
  • 0 Henk 'm!

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 04-10 12:10
Daarom gebruikte wij in onze code zowat altijd het this-keyword, om ervoor te zorgen dat je geen 'vreemde' problemen krijgt.

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Daarom prefixen wij alleen lokale variabelen met een underscore, parameters beginnen met een kleine letter (camelCase).

Zie ook Design Guidelines for Developing Class Libraries en met name Capitalization Conventions. Maar hierover zijn in de Coffee Corner al hele bomen opgezet. ;)

[ Voor 71% gewijzigd door CodeCaster op 14-10-2010 10:10 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 08:57

Matis

Rubber Rocket

CodeCaster schreef op donderdag 14 oktober 2010 @ 10:05:
Daarom prefixen wij alleen lokale variabelen met een underscore, parameters beginnen met een kleine letter (camelCase).

Zie ook http://msdn.microsoft.com/en-us/library/ms229042.aspx en met name http://msdn.microsoft.com/en-us/library/ms229043.aspx
Dat doet R# automagisch voor mij O+

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Jan_V schreef op donderdag 14 oktober 2010 @ 09:00:
Oh heerlijk.
Een static method met die als parameter dezelfde naam heeft als een static member:
C#:
1
2
3
4
5
6
7
static List<CustomItem> _customItems;

//Code

private static void WriteToXmlFile<T>(List<T> _customItems, string fileName)
{
}

Dat moet voor problemen gaan zorgen...
Het is natuurlijk ook vreemd om een parameter met een _ te prefixen. Maar verder hoeft het geen probleem op te leveren ( Behalve dat er inderdaad vast wel een keer iemand is die het over het hoofd ziet ).

R# geeft bij dit soort dingen ook netjes een waarschuwing dat je parameter een andere var hide.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 02-10 16:55
Met een editor zal de class static variabele als blauw weergegeven worden en de lokale parameter als zwart, :/. In Java / Eclipse, ten minste. Oké, dan zul je het verschil nog niet zien, maar toch.

Wat wordt er binnen die functie overigens met _customItems gedaan? Aangezien ik gewend ben dat als je gewoon _customItems daarbinnen aanroept hij de parameter _customItems gebruikt ipv de class variabele.

En Eclipse geeft netjes een waarschuwing als je

code:
1
2
3
4
5
static List<CustomItem> _customItems;

private static void writeToXmlFile<T>(List<T> _customItems) {
    _customItems = _customItems;
}


doet.

Acties:
  • 0 Henk 'm!

  • Jan_V
  • Registratie: Maart 2002
  • Laatst online: 18:20
In de methode zelf zal gewoon de parameter worden gebruikt.
Het komt de leesbaarheid echter niet ten goede. Gelukkig was dit een relatief kleine methode, waar je dus redelijk goed overzicht hebt. In dit project lijkt het this-keyword niet gebruikt te worden.

De design guidelines worden sowieso een beetje aan de laars gelapt in dit project. Blij dat het na deze week af is....hoop ik.

Battle.net - Jandev#2601 / XBOX: VriesDeJ


Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
alex3305 schreef op donderdag 14 oktober 2010 @ 09:53:
Daarom gebruikte wij in onze code zowat altijd het this-keyword, om ervoor te zorgen dat je geen 'vreemde' problemen krijgt.
Ja, maar binnen een static method kun je geen this gebruiken. :)

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Davio schreef op donderdag 14 oktober 2010 @ 13:47:
[...]

Ja, maar binnen een static method kun je geen this gebruiken. :)
Wel de naam van de klasse. Dus:
C#:
1
    ItemClass._customItems = _customItems;

[ Voor 13% gewijzigd door CodeCaster op 14-10-2010 14:26 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

Verwijderd

Moet je dan geen self gebruiken?

Acties:
  • 0 Henk 'm!

  • Styxxy
  • Registratie: Augustus 2009
  • Laatst online: 18:54
In C# niet, naam van de eigen klasse gebruiken ;) (PHP moet je wel self:: gebruiken).

Acties:
  • 0 Henk 'm!

  • 418O2
  • Registratie: November 2001
  • Laatst online: 19:19
Ah, heb er zelf ook 1 op mijn naam zie ik net

C#:
1
2
3
4
5
6
        public virtual void Birthday(Employee em, DateTime date)
        {
            this.date = new DateTime(2009, date.Month, date.Day);
            this.message = em.FullName + " wordt " + this.getAge(date);
            this.employee = em;
        }


Mijn eerste C# project, zon 2 jaar gelden. Nu bezig met een revisie.

Vroeg me al of waarom die set niet goed werd gesorteerd.

[ Voor 17% gewijzigd door 418O2 op 15-10-2010 11:06 ]


Acties:
  • 0 Henk 'm!

  • Wijnbo
  • Registratie: December 2002
  • Laatst online: 22-09 14:46

Wijnbo

Electronica werkt op rook.

SQL:
1
2
WHERE   LN_LINETYPE_ID >= 10
                AND LN_LINETYPE_ID < 20


;( ;( ;(

Acties:
  • 0 Henk 'm!

  • lier
  • Registratie: Januari 2004
  • Laatst online: 16:42

lier

MikroTik nerd

Wijnbo schreef op dinsdag 19 oktober 2010 @ 08:35:
SQL:
1
2
WHERE   LN_LINETYPE_ID >= 10
                AND LN_LINETYPE_ID < 20


;( ;( ;(
Het is nog vroeg, maar je had het willen optimaliseren naar:

SQL:
1
2
WHERE   LN_LINETYPE_ID > 9
                AND LN_LINETYPE_ID < 20 

of zoiets:
SQL:
1
WHERE   LN_LINETYPE_ID BETWEEN 9 AND 20

:z

[ Voor 7% gewijzigd door lier op 19-10-2010 08:45 ]

Eerst het probleem, dan de oplossing


Acties:
  • 0 Henk 'm!

  • Wijnbo
  • Registratie: December 2002
  • Laatst online: 22-09 14:46

Wijnbo

Electronica werkt op rook.

lier schreef op dinsdag 19 oktober 2010 @ 08:44:
[...]

Het is nog vroeg, maar je had het willen optimaliseren naar:

SQL:
1
2
WHERE   LN_LINETYPE_ID > 9
                AND LN_LINETYPE_ID < 20 

of zoiets:
SQL:
1
WHERE   LN_LINETYPE_ID BETWEEN 9 AND 20

:z
Vergeet ik er bij te vermelden dat LN_LINETYPE_ID 10,20,30,40 etc kan zijn.
SQL:
1
2
WHERE LN_LINETYPE_ID = 10
 


volstaat dus
Pagina: 1 ... 36 ... 103 Laatste

Dit topic is gesloten.

Let op:
Uiteraard is het in dit topic niet de bedoeling dat andere users en/of topics aangehaald worden om ze voor gek te zetten. Lachen om je eigen code, of over dingen die je "wel eens tegengekomen bent" is prima, maar hou het onderling netjes. :)