Iif() の使用に関する多くの投稿/記事を見てきました。これはすべて、C/C#/C++ などの条件演算子のように IIf() を使用しようとしたときに始まりました。
私が正確にやろうとしたことは、次の投稿のこれの行に正確にありました。
VB.NET IIF を使用すると NullReferenceException が発生します
ただし、実装したソリューションは、次の msdn サイトから借用したものです。
http://msdn.microsoft.com/en-us/library/27ydhh0d%28v=vs.80%29.aspx
その後、vb.net の If() メソッドについて学びました。
そのため、最終的には、目的を達成するために適切な値 (リフレクションを使用) を返す関数を作成しました。しかし、そのメソッド (私が書いたもの) は例外をスローしませんでした。実際、関数内の型が null 可能かどうかを確認できました。
Function ReturnValue(ByVal MyType As SomeType, ByVal PropertyName as String) As Object
If MyType Is Nothing Then Return String.Empty
Dim arrPropInfo As PropertyInfo() = MyType.GetType().GetProperties()
Return arrPropInfo.Where(Function(x) x.Name = PropertyName).Item(0).GetValue(MyType, Nothing)
End Function
私の質問は、そのようなエラーをスローするために Iif() 内に書かれたものはありますか? - NullReferenceException
If MyType Is Nothing Then Throw New NullReferenceException()
それとも、ここでもっと大きな何かが働いているのでしょうか? では、引数リスト内の何かが null の場合にエラーをスローする iif のような関数を書きたい場合、上記の方法が唯一の方法であるとします。