Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace test16_8
- {
- class ClassePunto
- {
- public int X;
- public int Y;
- public ClassePunto(int x, int y) { X = x; Y = y; }
- }
- struct StructPunto
- {
- public int X;
- public int Y;
- public StructPunto(int x, int y) { X = x; Y = y; }
- }
- class Program
- {
- static void ClasseSenzaRef(ClassePunto p)
- {
- //p è una copia dell'INDIRIZZO DEL PUNTO ESTERNO
- //p = new(1, 1); //il punto nel main non cambia
- p.X = 1; //ma i valori dei membri interni sì
- }
- static void StructSenzaRef(StructPunto p)
- {
- //p è una copia dei DATI esterni
- //p = new(2, 2); //il punto nel main non cambia
- p.X = 2;
- }
- static void ClasseConRef(ref ClassePunto p)
- {
- //p è dove memorizzato l'indirizzo del punto esterno, non una copia
- //p = new(5, 5); //il punto nel main CAMBIA
- p.X = 99;
- }
- static void StructConRef(ref StructPunto p)
- {
- //p = new(6, 6); //il punto nel main CAMBIA
- p.X = 99;
- }
- static void Main(string[] args)
- {
- ClassePunto puntoComeClasse = new(77, 77);
- StructPunto puntoComeStruct = new(88,88);
- //ClasseSenzaRef(puntoComeClasse);
- //Console.WriteLine(puntoComeClasse.X);
- //StructSenzaRef(puntoComeStruct);
- //Console.WriteLine(puntoComeStruct.X);
- ClasseConRef(ref puntoComeClasse);
- Console.WriteLine(puntoComeClasse.X);
- StructConRef(ref puntoComeStruct);
- Console.WriteLine(puntoComeStruct.X);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement