C
int Test(int* a)
{
if(a != null) *a = 5; // optionaalinen output-parametri
return 10;
}
C#
- EI VOI KÄYTTÄÄ REF EIKÄ OUT, koska parametrin on oltava optionaalinen, ja molemmat REF sekä OUT vaativat että parametri on aina non-null.
C# - optionaalinen metodin output-parametri
5
271
Vastaukset
- 23333
Mihin tuollaista edes tarvitsee? Mikset vain palauta metodista arvoa?
- c++ yhä paras
Jos et ole koskaan käyttänyt C :aa niin ei kannata edes yrittää vastata. "Mihin tuollaista tarvitsee", voi v....
- 222223333
c++ yhä paras kirjoitti:
Jos et ole koskaan käyttänyt C :aa niin ei kannata edes yrittää vastata. "Mihin tuollaista tarvitsee", voi v....
No nyt on kyse C# kielestä? Miksi koitat koodata C# kielellä C kun ne ovat eri kieliä?
- lelumyass
C#
unsafe int test(int* a)
{
if (a != null) *a = 5;
return 10;
}
Ja ongelma oli? "if(a != null)"
Ja tässä sulla ei tietenkään ole mitään varmuutta, että a on alustettu oikein eli joko null:ks tai osoittaa oikeeseen muistipaikkaan ennen metodin kutsua:
int* access_violation; // sisältää satunnaisen osoitteen...
test(access_violation); // voila!!
c#:ssä:
http://msdn.microsoft.com/en-us/library/dd264739.aspx
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 73883
Miltä se tuntuu
Miltä se tuntuu havahtua, että on ollut ihmistä kohtaan, joka on rakastanut ja varjellut, täysi m*lkku? Vai havahtuuko s104748- 43631
- 36623
- 47613
- 30601
- 40595
- 50560
Mitä se olisi
Jos sinä mies saisit sanoa kaivatullesi mitä vain juuri nyt. Ilman mitään seuraamuksia yms. Niin mitä sanoisit?34557- 37496