2011-08-22 12 views
6

IsNot Nothingは非常に一般的ですが、それはVB.netにキーワードを追加しますか?

oを=二重否定だ、私が代わりにExistsを使用したいと思います。(「何をISNOTない」対「存在」)私はVBのボキャブにキーワードを追加できますか?

今のところ、それぞれのオブジェクトにプロパティとして_Exists()を追加する拡張機能を書いています。私はこれを頻繁に使用しますが、私はまだ実際のキーワードを好むでしょう。

<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 

私は、もっぱらのVisual Studio 2010を使用するので、私は標準の構文に私のカスタム語法を変換するにVSをだましことができれば、それは私のために働くだろう。

ありがとうございます!

+1

ダブルネガティブIsNot Nothingではなく、拡張メソッドを使用することをお勧めします。私はちょうど不思議です:なぜ下線?また、おそらくHasValueはより良い名前になります。これは、Nullableオブジェクトに値があるかどうかをチェックするメソッドにMicrosoftが使用する名前です。 –

+0

私はそれについて議論しましたが、私はアンダースコアを使用して終了しました。なぜなら、Existsと実際のオブジェクトの間の視覚的な区別が、特にオブジェクトが既に一連のドットを含んでいる場合(例えば、オブジェクトのプロパティ)。私は実際には 'HasValue'という別の拡張を文字列に使用しています。これは' Not String.IsNullOrEmpty'と同じです。 Microsoftの組み込みメソッドについての良い点は、私はそれを考慮していなかった。 –

+0

私の2セント:言語を変更しないでください。言語はコミュニケーションの一形態であり、誰も知らない自分の方言を作った場合、コミュニケーションすることはできません。もしあなたが 'Reset'キーワードでコードを受け取ったら?どういう意味ですか?それは何をするためのものか? Visual Studioにどのように追加しますか? –

答えて

5

この回答はそれほど役に立ちませんが、現在はこちらです:現在、あなたはこれを行うことはできません

今後のバージョンのVS(特に、コンパイラサービスの内部構造を解放して拡張可能にする場合)は可能ですが、実際には新しいキーワードを追加することはできません。互換性のあるコードのエコシステムを確保したいコンパイラベンダーです。

+0

hm、VS mods *ができることを考えると、それはかなり驚くべきことです。まぁ。彼らは実際に、ある時点でコンパイラの詳細をリリースすると発表しましたか? –

+1

@ J.Steve公式発表はあるとは確信していますが、一部の情報は開発者によって「漏洩」しています。 [Eric Lippert](http://blogs.msdn.com/b/ericlippert/archive/2010/12/16/hiring-for-roslyn.aspx)。 –

関連する問題