webForumDet fria alternativet

Pekare i C#

3 svar · 421 visningar · startad av juventus1

juventus1Medlem sedan dec. 2000399 inlägg
#1

Jag har en fråga som jag aldrig lyckats få svar på: Hur ska man använda pekare i C#? Jag inte sett en enda pekare i alla exempel jag har tittat på. Om man inte ska använda pekare hur ska man då göra?

mvh André

emissionMedlem sedan dec. 19996 721 inlägg
#2

Pekare i C# följer gängse syntax, men man måste deklarera att metoden, tilldelningen etc. är unsafe (berättar att koden är osäker) och att pekaren är fixed (hindrar garbage collectorn från att fimpa pekaren). Kolla på detta i dokumentationen.

Jag har ännu inte använt pekare i C#, förutom för rena teständamål, och känner att jag kommer att njuta av pekarlös programmering så länge kan.

juventus1Medlem sedan dec. 2000399 inlägg
#3

Hur ska man komma runt användningen av pekare?

emissionMedlem sedan dec. 19996 721 inlägg
#4

Genom att betrakta C# som en släkting till Java, och inte till C och C++.

Primitiva datatyper hanteras med dess värden, medan objekt hanteras med referenser.

Har man:

Rectangle myrect = new Rectangle (1,1);
String mystring="hej hopp";
Resize(rect,mystring);

och

public static void Resize(Rectangle rect,String instring)
{
rect.Width=rect.Width*2;
rect.Height=rect.Height*2;
instring="hej";
}

så har Width och Height på myrect fördubblats, men mystring är oförändrad.

Det faktum att pekaranvändningen är lite tillknepad beror till stor del på att ett mål med C# är att få bort pekarna (tycker att det är synd att de finns där, även om jag förstår tanken).

133 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)