1

これはかなり基本的な質問だと思いますが、明確にしたいだけです。null 値を持つ変数があり、それをオプションのパラメーターとして渡す場合、パラメーターは null 値またはデフォルト値を取得しますか?

dim str As String = "foo"
dim obj As Object
//call 1
Request(str, str)
//call 2
Request(str)
//call 3
Request(str, obj)


public Function Request(byVal someVal As String, Optional ByVal someVal2 As String = "bar")
   ...

call 1 がsomeval == someval2 == "foo"関数内で行われ、call 2 が行わsomeval == "foo"someval2 == "bar"、call 3 が行われることはわかっていますが、call 3someval == fooでは何がsomeval2等しいのでしょうか? nullableまたはバー?

また、私は vb.net に比較的慣れていないため、C# との null/nullable/nothing の概念の違いを完全には理解していないと思います。

4

2 に答える 2

1

「呼び出し3のsomeval2は何に等しいですか?null許容またはbar?」nullになります。

ええと、実際には、3を呼び出すことはできません...オブジェクトを文字列パラメータとして渡すことができないため、コンパイルされません。ただし、dimobjをstring= nullとして使用した場合、nullになります。

于 2010-09-22T15:42:07.110 に答える