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 - [risolto][Vb.net 2010] Campo in conflitto con la proprietà
Forum - C# / VB.NET - [risolto][Vb.net 2010] Campo in conflitto con la proprietà

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Salve a tutti....stassera visual basic 2010 express si è messo in testa di darmi errori assurdi.

Codice sorgente - presumibilmente VB.NET

  1. Public Class cubo
  2.     Private _getlato As Single
  3.     Private _densità As Single
  4.     Private Shared _quantita As Int32 = 0
  5.  
  6.     Public Sub New()
  7.         _quantita += 1
  8.     End Sub
  9.  
  10.     Public Property getlato() As Single
  11.  
  12. End Class



L'IDE arrivato a questo punto,
mi segnala l'errore dicendomi che _getlato è in conflitto  con la proprietà getlato ...ma non capisco perchè dato davanti al campo c'è l'underscore, ed è pure una convenzione scriverlo così...sono alibito!

Idee...suggerimenti? Sono in ascolto

Ultima modifica effettuata da il 10/09/2012 alle 13:09
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 23:31
Domenica, 09/09/2012

hai semplicemente dimenticato il corpo della property:

Codice sorgente - presumibilmente VB.NET

  1. Public Class cubo
  2.     Private _getlato As Single
  3.     Private _densità As Single
  4.     Private Shared _quantita As Int32 = 0
  5.  
  6.     Public Sub New()
  7.         _quantita += 1
  8.     End Sub
  9.  
  10.     Public Property getlato() As Single
  11. Get
  12.             Return _getlato
  13.         End Get
  14.         Set(ByVal Value As String)
  15.             _getlato = Value
  16.         End Set
  17.     End Property
  18.  
  19. End Class



un bel manuale sotto mano e passa la paura :)


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 23:36
Domenica, 09/09/2012
lo sò che manca il corpo...ma fino a oggi pomeriggio appena finivo di scrivere quella riga non mi dava errore, ed appena andavo a capo la chiudeva lui senza però set e get...

Codice sorgente - presumibilmente VB.NET

  1. [...]
  2.  
  3. public property esempio() As single
  4.  
  5. End property
  6. [...]



infatti ho visto anchio che nel chiuderla manualmente toglie l'errore...ma non capisco perchè dia l'errore a priori senza chiuderla in automatico come al solito o.O

ho notato infatti che ad esempio scrivo il nome della proprietà in modo diverso da quanto scritto nel campo, la funzione la chiude automaticamente senza rogne....bha...

Ultima modifica effettuata da il 09/09/2012 alle 23:37
PM Quote
Avatar
ampeg (Normal User)
Pro


Messaggi: 124
Iscritto: 21/04/2011

Segnala al moderatore
Postato alle 12:47
Lunedì, 10/09/2012
sul mio vs 2010 si comporta così da sempre, devo scrivere il Get a mano, poi vado a capo e si autocompila

dopo la dichiarazione della propery si autocompila solo se la property la specifico readonly o writeonly

credo che il motivo sia dovuto al fatto che in VS 2010 sia possibile scrivere la proprietà in forma abbreviata ovvero senza specificare la variabile di modulo della proprietà e il blocco Get e Set

Codice sorgente - presumibilmente C# / VB.NET

  1. Property getlato As Single()



con questa forma, la variabile di modulo per la proprietà "getlato" verrà aggiunta in fase di compilazione dal compilatore e avrà il nome "_getlato"

per l'intellisense si presenta una situazione ambigua e si comporta omettendo il blocco, penso sia per questo motivo

Ultima modifica effettuata da ampeg il 10/09/2012 alle 12:52
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 13:02
Lunedì, 10/09/2012
Ah ecco :yup: basta seperlo....infatti avevo lavorato molto con i readonly prima e li non usciva.... Grazie mille almeno sò di non essere l'unico :rofl:

Ultima modifica effettuata da il 10/09/2012 alle 13:10
PM Quote