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é
3 svar · 421 visningar · startad av juventus1
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é
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.
Hur ska man komma runt användningen av pekare?
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).