Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Visual Basic
Expertise: Intermediate
Dec 23, 1998



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Is Missing Behavior Changed in VB5

In VB5, you can assign a default value to a typed optional argument. But you must then use the IsMissing function carefully, because when the optional argument is typed, IsMissing always returns False. Only when using an untyped (Variant) optional argument will IsMissing be accurate in determining whether a value was passed. If no default value is assigned and the argument is typed, VB automatically assigns the default value normally assigned to such a type-typically 0 or an empty string.

Under this condition, you shouldn't use IsMissing to detect whether the argument has been set. You can detect it with two methods. The first method is to not give the argument a type when you declare, so you can use the IsMissing function to detect it. The second method is to give a default value when you declare, but you won't have to set that value when you call it. This code gives some examples about using optional arguments and the IsMissing function:

	Private Sub fun1(..., Optional nVal)
	'- Without type (Variant)
		If IsMissing(nVal) Then
		'- You can use IsMissing here
		End If
	End Sub

	Private Sub fun2(..., Optional nVal As Integer)
	'- With type but no default value
		If IsMissing(nVal) Then
			'- You cannot use IsMissing here to detect is 
			'- nVal been set, always return true
			'- VB will give nVal a default value 0 because  
			'- its type is Integer
		End If

	End Sub

	Private Sub fun3(..., Optional nVal As Integer = -1)
		If nVal = -1 Then
		'- You can use this to detect , in function equals to 
		'- IsMissing
		'- But you must sure the the value -1 will not be 
		'- used when the procedure is called
		End If
	End Sub
Henry Jia
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date