2011-08-22 14 views
6

IsNot Nothing jest bardzo powszechne, ale jest to podwójnie negatywny = oDodawanie słowa kluczowego do VB.net? ("Istnieje" vs "isnot nic")

Chciałbym użyć Exists zamiast. Czy w jakiś sposób mogę dodać słowo kluczowe do mojego słownika VB?

Na razie napisałem rozszerzenie, które dodaje _Exists() jako właściwość do każdego obiektu. Często używam tego, ale wolę aktualne słowo kluczowe.

<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 

używam wyłącznie Visual Studio 2010, więc jeśli mogę oszukać VS do konwertowania mój własny frazeologii do standardowej składni, to by pracować dla mnie.

Dzięki!

+1

To dobry pomysł, aby użyć metody rozszerzenia zamiast podwójnego negatywnego IsNot Nothing. Zastanawiam się tylko: dlaczego podkreślenie? Być może HasValue będzie przyjemniejszą nazwą; jest to nazwa, której używa Microsoft do sprawdzania, czy obiekt Nullable ma wartość. –

+0

Tak, dyskutowałem o tym, ale w końcu użyłem podkreślenia, ponieważ podoba mi się wizualne rozróżnienie pomiędzy "Existami" a faktycznym badanym obiektem - szczególnie w przypadkach, gdy obiekt zawiera już serię kropek (np. Właściwość własność obiektu). W rzeczywistości mam inne rozszerzenie o nazwie 'HasValue', którego używam dla ciągów, co jest równe' Not String.IsNullOrEmpty'. Dobra uwaga dotycząca wbudowanej metody Microsoftu, nie brałem pod uwagę tego. –

+0

Moje 2 centy: nie zmieniaj języka. Język jest sposobem komunikacji i nie można się komunikować, jeśli stworzysz swój własny dialekt, o którym nikt nie wie. Co jeśli otrzymałeś kod ze słowem kluczowym "Reset"? Co to znaczy? Co to robi? Jak dodać to do Visual Studio? –

Odpowiedz

5

Ta odpowiedź nie jest bardzo pomocna, ale tutaj: obecnie, nie możesz tego zrobić.

Przyszłe wersje VS (szczególnie gdy udostępniają swoje wewnętrzne usługi kompilatora i umożliwiają ich rozszerzanie) mogą na to pozwolić - chociaż faktycznie wątpię, że pozwolą na dodanie nowych słów kluczowych, ponieważ nie jest to w interesie producenta kompilatora, który chce zapewnić ekosystem kompatybilnego kodu.

+0

hm, to dość zaskakujące, biorąc pod uwagę wszystkie mody VS * mogą * robić. Ach tak. Czy oni rzeczywiście ogłosili, że w pewnym momencie wydadzą te szczegóły kompilatora? –

+1

@ J.Steve Nie jestem pewien, czy istnieje oficjalne ogłoszenie, ale niektóre informacje zostały "ujawnione" przez programistów, np. [Eric Lippert] (http://blogs.msdn.com/b/ericlippert/archive/2010/12/16/hiring-for-roslyn.aspx). –

Powiązane problemy