2

学校では、主に Java、C、および Python を使用していました。私が働いている今、私は常に .Net を使用しています。時折、私は Visual Basic プロジェクトに取り組まなければなりませんが、これは楽しい学習経験でしたが、ときどきいくつかのことに夢中になっているようです。私の主な問題の 1 つは、Visual Basicが C# や F#Nothingの代わりに使用するという事実から来ています。null

Nothingとは、Visual Basic で null 非許容値型を設定でき、値がデフォルト値 (つまり、整数の場合は 0) に設定されることをnull除いて、基本的に同じように思えます。NothingC# では、null 非許容値型が に設定されてnullいる場合、コンパイル時エラーが発生します。データ型のデフォルト値を にしますが、作成した型を作成し、データベースを操作するためにNullable値を設定すると、私はうんざりします。fromDBNull.Valueへの直感的な切り替えではありません。C# と VB の両方で文字列を null/Nothing に設定する IL コードを調べ、文字列を ldnull に設定するたびに確認しました。Visual Basic が他の .Net 言語の代わりに使用する理由について、根本的な理由はありますか?NothingnullNothingnull

tl;dr なぜ Visual Basic はNothing代わりに を使用するのnullですか?

4

3 に答える 3

3

VBはオリジナルのBasicに基づいていることを忘れないでください。これは、プログラマーではない人でも簡単に理解できる、真にBASICであることが意図されています。

プログラマー以外の人に、値が何であるかを説明しようとすると、それはより理にかなっています。

「Xの値は何もない」

また

「Xの値はnullです」->「ハァッ」につながりますか?一体何がNULLですか?

于 2012-08-09T14:56:11.397 に答える
1

nothingC#の機能を再現したい場合は、変数の型であるdefault(int)whereを使用してみてください。int

これは通常、型が不明な場合にジェネリックで使用されます。

于 2012-08-09T14:56:50.727 に答える
0

NothingVB6 以前のバージョンの VB で使用されていたキーワードです。彼らがその用語を選んだ理由はわかりませんが、コア VB 言語構文の一部であり、下位互換性のために .NET に保持されています。おそらく、初心者が理解するためのより簡単な用語だったので、最初はそれを選んだのでしょうか?

于 2012-08-09T14:56:37.573 に答える