Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - SDL con Mono su Linux
Forum - C# / VB.NET - SDL con Mono su Linux

Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 19:46
Domenica, 10/01/2010
ho un problema che non riesco a risolvere. Stavo provando il wrapper delle SDL con MonoDevelop su Ubuntu.

Quando faccio

Codice sorgente - presumibilmente C# / VB.NET

  1. Sdl.SDL_Rect rect = new Sdl.SDL_Rect();
  2. rect.x = 20;
  3. rect.y = 20;
  4. IntPtr image;
  5. image = Sdl.SDL_LoadBMP(p_img);
  6. Sdl.SDL_UnlockSurface(surfacePtr);
  7. Sdl.SDL_BlitSurface(image, null, surfacePtr, ref rect);
  8.                         Sdl.SDL_LockSurface(surfacePtr);
  9.                         Sdl.SDL_UpdateRect(surfacePtr, 0, 0, 0, 0);



quando metto null nella BlitSurface il compilatore mi segnala errore dato che quel parametro deve essere un ref.
Allora ho provato a fare:

Codice sorgente - presumibilmente Plain Text

  1. Sdl.SDL_Rect nulla = null;



ma mi segnala errore dicendo che null è un tipo value e non SDL_Rect.
Anche istanziando con new la Rect e assegnadole null dopo mi dice la stessa cosa.
Quindi come faccio a passare un null alla funzione?

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:12
Lunedì, 11/01/2010
null è un tipo value? Semmai è un tipo reference, e sarà invece nulla (la variabile) ad essere un tipo value.
Semplicemente, i tipi value non possono essere null. E' come se scrivessi:
Codice sorgente - presumibilmente C# / VB.NET

  1. int i = null;


Non ha senso.

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 19:58
Lunedì, 11/01/2010
quello che pensavo io, però vedevo su questa pagina:

http://msdn.microsoft.com/it-it/library/edakx9da.aspx

che assegna alla var mc il valore null

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 14:33
Martedì, 12/01/2010
Infatti mc è un tipo reference, poiché di tipo MyClass, che è una classe.

Ti sarebbe potuto sembrare strano qualcosa del genere:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim I As Int32?
  2. I = Nothing


Non so se in C# esiste il simbolo ? usato in questo senso. Nel codice sopra, I è un tipo annullabile di interi: i tipi nullable sono tipi value strutturati ma possono supportare l'assegnamento di Nothing (null).
Sarebbe come scrivere:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim I As Nullable(Of Int32)
  2. I = Nothing


o
Codice sorgente - presumibilmente Plain Text

  1. Nullable<Int32> I;
  2. I = null;


Nota che non ho usato New.

PM Quote