This documentation is archived and is not being maintained.

Type.Missing Field

Represents a missing value in the Type information. This field is read-only.

[Visual Basic]
Public Shared ReadOnly Missing As Object
[C#]
public static readonly object Missing;
[C++]
public: static Object* Missing;
[JScript]
public static var Missing : Object;

Remarks

Use the Missing field for invocation through reflection to obtain the default value of a parameter. If the Missing field is passed in for a parameter value and there is no default value for that parameter, an ArgumentException is thrown.

Example

[Visual Basic] The following code example shows the use of the Missing field to invoke a method with its default arguments.

[Visual Basic] 
Option Strict Off
Imports System
Imports System.Reflection
Public Class OptionalArg
    Public Sub MyMethod(ByVal a As Integer, Optional ByVal b As Double = 1.2, Optional ByVal c As Integer = 1)
        Console.WriteLine("a = " & a & " b = " & b & " c = " & c)
    End Sub
End Class
Module module1
    Sub main()
        Dim o As New OptionalArg()
        Dim t As Type
        t = GetType(OptionalArg)
        Dim param As Object() = {10, 20, 30}
        t.InvokeMember("MyMethod", BindingFlags.Public Or BindingFlags.Instance Or BindingFlags.InvokeMethod Or BindingFlags.OptionalParamBinding, Nothing, o, New Object() {10, 55.3, 12})
        t.InvokeMember("MyMethod", BindingFlags.Public Or BindingFlags.Instance Or BindingFlags.InvokeMethod Or BindingFlags.OptionalParamBinding, Nothing, o, New Object() {10, 1.3, Type.Missing})
        t.InvokeMember("MyMethod", BindingFlags.Public Or BindingFlags.Instance Or BindingFlags.InvokeMethod Or BindingFlags.OptionalParamBinding, Nothing, o, New Object() {10, Type.Missing, Type.Missing})
    End Sub
End Module

[Visual Basic] This code produces the following output:

[Visual Basic] a = 10 b = 55.3 c = 12

[Visual Basic] a = 10 b = 1.3 c = 1

[Visual Basic] a = 10 b = 1.2 c = 1

[C#, C++, JScript] No example is available for C#, C++, or JScript. To view a Visual Basic example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework, Common Language Infrastructure (CLI) Standard

See Also

Type Class | Type Members | System Namespace | Missing | Accessing Default Argument Values

Show: