Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. 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?


"There's no point in being exact about something if you don't even know what you're talking about."

JOHN VON NEUMANN


Siamo italiani NO??
Allora scriviamo in ITALIANO!!!!
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.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
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


"There's no point in being exact about something if you don't even know what you're talking about."

JOHN VON NEUMANN


Siamo italiani NO??
Allora scriviamo in ITALIANO!!!!
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.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote