Freigeben über


AmbiguousMatchException Konstruktoren

Definition

Initialisiert eine neue Instanz der AmbiguousMatchException-Klasse.

Überlädt

Name Beschreibung
AmbiguousMatchException()

Initialisiert eine neue Instanz der AmbiguousMatchException Klasse mit einer leeren Nachrichtenzeichenfolge und der Ausnahme für die Stammursache auf null.

AmbiguousMatchException(String)

Initialisiert eine neue Instanz der AmbiguousMatchException Klasse mit der zugehörigen Nachrichtenzeichenfolge, die auf die angegebene Nachricht festgelegt ist, und die Ursache ausnahme auf null.

AmbiguousMatchException(String, Exception)

Initialisiert eine neue Instanz der AmbiguousMatchException Klasse mit einer angegebenen Fehlermeldung und einem Verweis auf die innere Ausnahme, die die Ursache dieser Ausnahme ist.

AmbiguousMatchException()

Quelle:
AmbiguousMatchException.cs
Quelle:
AmbiguousMatchException.cs
Quelle:
AmbiguousMatchException.cs
Quelle:
AmbiguousMatchException.cs
Quelle:
AmbiguousMatchException.cs

Initialisiert eine neue Instanz der AmbiguousMatchException Klasse mit einer leeren Nachrichtenzeichenfolge und der Ausnahme für die Stammursache auf null.

public:
 AmbiguousMatchException();
public AmbiguousMatchException();
Public Sub New ()

Hinweise

AmbiguousMatchException erbt von Exception. Dieser Konstruktor legt die Eigenschaften des Exception Objekts fest, wie in der folgenden Tabelle dargestellt.

Eigentum Wert
InnerException null
Message Die leere Zeichenfolge ("").

Weitere Informationen

Gilt für:

AmbiguousMatchException(String)

Quelle:
AmbiguousMatchException.cs
Quelle:
AmbiguousMatchException.cs
Quelle:
AmbiguousMatchException.cs
Quelle:
AmbiguousMatchException.cs
Quelle:
AmbiguousMatchException.cs

Initialisiert eine neue Instanz der AmbiguousMatchException Klasse mit der zugehörigen Nachrichtenzeichenfolge, die auf die angegebene Nachricht festgelegt ist, und die Ursache ausnahme auf null.

public:
 AmbiguousMatchException(System::String ^ message);
public AmbiguousMatchException(string message);
public AmbiguousMatchException(string? message);
new System.Reflection.AmbiguousMatchException : string -> System.Reflection.AmbiguousMatchException
Public Sub New (message As String)

Parameter

message
String

Eine Zeichenfolge, die angibt, warum diese Ausnahme ausgelöst wurde.

Hinweise

AmbiguousMatchException erbt von Exception. Dieser Konstruktor legt die Eigenschaften des Exception Objekts fest, wie in der folgenden Tabelle dargestellt.

Eigentum Wert
InnerException null
Message Die message Zeichenfolge.

Gilt für:

AmbiguousMatchException(String, Exception)

Quelle:
AmbiguousMatchException.cs
Quelle:
AmbiguousMatchException.cs
Quelle:
AmbiguousMatchException.cs
Quelle:
AmbiguousMatchException.cs
Quelle:
AmbiguousMatchException.cs

Initialisiert eine neue Instanz der AmbiguousMatchException Klasse mit einer angegebenen Fehlermeldung und einem Verweis auf die innere Ausnahme, die die Ursache dieser Ausnahme ist.

public:
 AmbiguousMatchException(System::String ^ message, Exception ^ inner);
public AmbiguousMatchException(string message, Exception inner);
public AmbiguousMatchException(string? message, Exception? inner);
new System.Reflection.AmbiguousMatchException : string * Exception -> System.Reflection.AmbiguousMatchException
Public Sub New (message As String, inner As Exception)

Parameter

message
String

Die Fehlermeldung, die den Grund für die Ausnahme erklärt.

inner
Exception

Die Ausnahme, die die Ursache der aktuellen Ausnahme ist. Wenn der inner Parameter nicht nullangegeben ist, wird die aktuelle Ausnahme in einem catch Block ausgelöst, der die innere Ausnahme behandelt.

Beispiele

Das folgende Beispiel zeigt zwei Methoden, die jeweils benannt sind Mymethod. Eine Methode verwendet eine ganze Zahl, und die andere akzeptiert eine Zeichenfolge. Wenn eine ganze Zahl übergeben Mymethodwird, wird die erste Methode verwendet. Wenn eine Zeichenfolge übergeben wird, wird die zweite Methode verwendet. Wenn sie nicht bestimmt werden kann, welcher Mymethod Wert verwendet werden soll, AmbiguousMatchException wird ausgelöst.

using System;
using System.Reflection;

namespace Ambiguity
{
    class Myambiguous
    {
        //The first overload is typed to an int
        public static void Mymethod(int number)
        {
           Console.WriteLine("I am from 'int' method");
        }

        //The second overload is typed to a string
        public static void Mymethod(string alpha)
        {
            Console.WriteLine("I am from 'string' method.");
        }

        public static void Main()
        {
            try
            {
                //The following does not cause as exception
                Mymethod(2);    // goes to Mymethod(int)
                Mymethod("3");  // goes to Mymethod(string)

                Type Mytype = Type.GetType("Ambiguity.Myambiguous");

                MethodInfo Mymethodinfo32 = Mytype.GetMethod("Mymethod", new Type[]{typeof(int)});
                MethodInfo Mymethodinfostr = Mytype.GetMethod("Mymethod", new Type[]{typeof(System.String)});

                //Invoke a method, utilizing a int integer
                Mymethodinfo32.Invoke(null, new Object[]{2});

                //Invoke the method utilizing a string
                Mymethodinfostr.Invoke(null, new Object[]{"1"});

                //The following line causes an ambiguious exception
                MethodInfo Mymethodinfo = Mytype.GetMethod("Mymethod");
            }   // end of try block
            catch (AmbiguousMatchException ex)
            {
                Console.WriteLine("\n{0}\n{1}", ex.GetType().FullName, ex.Message);
            }
            catch
            {
                Console.WriteLine("\nSome other exception.");
            }
            return;
        }
    }
}

//This code produces the following output:
//
// I am from 'int' method
// I am from 'string' method.
// I am from 'int' method
// I am from 'string' method.

// System.Reflection.AmbiguousMatchException
// Ambiguous match found.
Imports System.Reflection

Namespace Ambiguity
    Class Myambiguous

        'The first overload is typed to an Int32
        Overloads Public Shared Sub Mymethod(number As Int32)
            Console.WriteLine("I am from 'Int32' method")
        End Sub

        'The second overload is typed to a string
        Overloads Public Shared Sub Mymethod(alpha As String)
            Console.WriteLine("I am from 'string' method.")
        End Sub

        Public Shared Sub Main()
            Try
                'The following does not cause as exception
                Mymethod(2) ' goes to Mymethod Int32)
                Mymethod("3") ' goes to Mymethod(string)
                Dim Mytype As Type = Type.GetType("Ambiguity.Myambiguous")

                Dim Mymethodinfo32 As MethodInfo = Mytype.GetMethod("Mymethod", New Type() {GetType(Int32)})
                Dim Mymethodinfostr As MethodInfo = Mytype.GetMethod("Mymethod", New Type() {GetType(System.String)})

                'Invoke a method, utilizing a Int32 integer
                Mymethodinfo32.Invoke(Nothing, New Object() {2})

                'Invoke the method utilizing a string
                Mymethodinfostr.Invoke(Nothing, New Object() {"1"})

                'The following line causes an ambiguious exception
                Dim Mymethodinfo As MethodInfo = Mytype.GetMethod("Mymethod")
                ' end of try block
            Catch ex As AmbiguousMatchException
                Console.WriteLine(Environment.NewLine + "{0}" + Environment.NewLine + "{1}", ex.GetType().FullName, ex.Message)
            Catch
                Console.WriteLine(Environment.NewLine + "Some other exception.")
            End Try
            Return
        End Sub
    End Class
End Namespace
' This code produces the following output:
'
' I am from 'Int32' method
' I am from 'string' method.
' I am from 'Int32' method
' I am from 'string' method.
'
' System.Reflection.AmbiguousMatchException
' Ambiguous match found.

Hinweise

Eine Ausnahme, die als direktes Ergebnis einer vorherigen Ausnahme ausgelöst wird, sollte einen Verweis auf die vorherige Ausnahme in der InnerException Eigenschaft enthalten. Die InnerException Eigenschaft gibt denselben Wert zurück, der an den Konstruktor übergeben wird, oder null wenn die InnerException Eigenschaft den inneren Ausnahmewert nicht für den Konstruktor angibt.

In der folgenden Tabelle sind die anfänglichen Eigenschaftswerte für eine Instanz von AmbiguousMatchException.

Eigentum Wert
InnerException Der interne Ausnahmeverweis.
Message Die Fehlermeldungszeichenfolge.

Weitere Informationen

Gilt für: