2011-08-22 10 views
6

IsNot Nothing è molto comune, ma è un doppio negativo = oAggiunta di una parola chiave a VB.net? ("Esiste" vs "IsNot Nothing")

Mi piacerebbe usare Exists invece. È possibile aggiungere una parola chiave al mio vocabolario VB?

Per ora, ho scritto un'estensione che aggiunge _Exists() come una proprietà a ciascun oggetto. Lo uso spesso, ma preferirei comunque una parola chiave effettiva.

<HideModuleName()> 
Public Module CustomExtensions 

    ''' <summary> 
    ''' Returns <c>True</c> if [object] is not <c>Nothing</c>; otherwise <c>False</c>. 
    ''' </summary> 
    <System.Runtime.CompilerServices.Extension()> 
    Public Function _Exists(obj As Object) As Boolean 
     Return obj IsNot Nothing 
    End Function 

End Module 

io uso Visual Studio 2010 in esclusiva, quindi se potessi ingannare VS nel convertire il mio frasario personalizzato nel sintassi standard, che sarebbe lavoro per me.

Grazie!

+1

È una buona idea utilizzare un metodo di estensione anziché il doppio negativo IsNot Nothing. Mi sto solo chiedendo: perché il trattino basso? Inoltre, forse HasValue sarebbe un nome più bello; è il nome utilizzato da Microsoft per il metodo che controlla se un oggetto Nullable ha un valore. –

+0

Sì, ne ho discusso, ma alla fine ho usato il carattere di sottolineatura perché mi piace la distinzione visiva tra 'Exists' e l'oggetto reale da testare - in particolare nei casi in cui l'oggetto conteneva già una serie di punti (ad esempio, una proprietà di un proprietà di un oggetto). In realtà ho un'altra estensione chiamata 'HasValue' che uso per le stringhe, che è uguale a' Not String.IsNullOrEmpty'. Per quanto riguarda il metodo integrato di Microsoft, non l'avevo considerato. –

+0

I miei 2 centesimi: non cambiare la lingua. La lingua è una modalità di comunicazione e non è possibile comunicare se si crea il proprio dialetto di cui nessun altro è a conoscenza. Cosa succede se hai ricevuto il codice con la parola chiave 'Reset'? Cosa significa? Che cosa fa? Come lo aggiungeresti a Visual Studio? –

risposta

5

Questa risposta non è molto utile, ma qui va: al momento, non è possibile farlo.

Le versioni future di VS (in particolare quando rilasciano i componenti interni del servizio di compilazione e le rendono estendibili) potrebbero consentirlo, anche se in realtà dubito che consentiranno l'aggiunta di nuove parole chiave, poiché ciò non è nell'interesse di un fornitore di compilatori che vuole garantire un ecosistema di codice compatibile.

+0

hm, è abbastanza sorprendente dato tutto ciò che VS mod * * può fare. Ah bene. Hanno effettivamente annunciato che rilasceranno i dettagli del compilatore ad un certo punto? –

+1

@ J.Steve Non sono sicuro che ci sia un annuncio ufficiale ma alcune informazioni sono state "trapelate" dagli sviluppatori, ad es. [Eric Lippert] (http://blogs.msdn.com/b/ericlippert/archive/2010/12/16/hiring-for-roslyn.aspx). –

Problemi correlati