Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1909, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

Visual Basic 2015: L'operatore NameOf

Visual Basic 2015 introduce un nuovo operatore chiamato NameOf. Il suo scopo è quello di generare al volo una costante che rappresenti stringhe, che a loro volta siano il nome di oggetti.

Per capirci, considerate il seguente codice che solleva un'eccezione se il parametro è nullo:
    Sub OpenFile(fileName As String)
        'Vecchia sintassi
        
If String.IsNullOrWhiteSpace(fileName) Then
            
Throw New ArgumentNullException("fileName")
        
End If
    
End Sub
In questo caso, il nome dell'argomento viene passato come una vera e propria stringa, anche col rischio di errori di digitazione. Con NameOf, tutto si può riscrivere in questo modo:
    Sub OpenFile(fileName As String)
        
'Nuova sintassi
        
If String.IsNullOrWhiteSpace(fileName) Then
            
Throw New ArgumentNullException(NameOf(fileName))
        
End If
    
End Sub
Il vantaggio? avere IntelliSense che consente di recuperare facilmente il nome dell'espressione da rappresentare. Un altro esempio, in cui una classe implementa INotifyPropertyChanged e deve passare il nome della proprietà che ha subito la modifica. Senza NameOf, il nome della proprietà viene passata come stringa. Con NameOf, si riscrive in questo modo, molto più efficiente e senza rischio di errori:
Class Person
    
Implements INotifyPropertyChanged
    
Private _firstName As String
    
Public Property FirstName As String
        
Get
            
Return _firstName
        
End Get
        
Set(value As String)
            
Me._firstName = value
            
RaiseEvent PropertyChanged(Me,
                                       
New PropertyChangedEventArgs(NameOf(FirstName)))
        
End Set
    
End Property

    
Public Event PropertyChanged As PropertyChangedEventHandler _
        
Implements INotifyPropertyChanged.PropertyChanged
End Class
NameOf si può usare anche con membri di oggetti separati dal classico punto (.).

Alessandro

Print | posted on sabato 7 febbraio 2015 13:43 | Filed Under [ Visual Basic Visual Studio 2015 ]

Powered by:
Powered By Subtext Powered By ASP.NET