Поделиться через


AmbiguousMatchException Конструкторы

Определение

Инициализирует новый экземпляр класса AmbiguousMatchException.

Перегрузки

Имя Описание
AmbiguousMatchException()

Инициализирует новый экземпляр AmbiguousMatchException класса с пустой строкой сообщения и набором исключений первопричины null.

AmbiguousMatchException(String)

Инициализирует новый экземпляр AmbiguousMatchException класса со строкой сообщения, заданной для заданного сообщения, и набор исключений первопричин.null

AmbiguousMatchException(String, Exception)

Инициализирует новый экземпляр AmbiguousMatchException класса с указанным сообщением об ошибке и ссылкой на внутреннее исключение, которое является причиной этого исключения.

AmbiguousMatchException()

Исходный код:
AmbiguousMatchException.cs
Исходный код:
AmbiguousMatchException.cs
Исходный код:
AmbiguousMatchException.cs
Исходный код:
AmbiguousMatchException.cs
Исходный код:
AmbiguousMatchException.cs

Инициализирует новый экземпляр AmbiguousMatchException класса с пустой строкой сообщения и набором исключений первопричины null.

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

Комментарии

AmbiguousMatchException наследует от Exception. Этот конструктор задает свойства Exception объекта, как показано в следующей таблице.

Недвижимость Ценность
InnerException null
Message Пустая строка ("").

См. также раздел

Применяется к

AmbiguousMatchException(String)

Исходный код:
AmbiguousMatchException.cs
Исходный код:
AmbiguousMatchException.cs
Исходный код:
AmbiguousMatchException.cs
Исходный код:
AmbiguousMatchException.cs
Исходный код:
AmbiguousMatchException.cs

Инициализирует новый экземпляр AmbiguousMatchException класса со строкой сообщения, заданной для заданного сообщения, и набор исключений первопричин.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)

Параметры

message
String

Строка, указывающая причину возникновения этого исключения.

Комментарии

AmbiguousMatchException наследует от Exception. Этот конструктор задает свойства Exception объекта, как показано в следующей таблице.

Недвижимость Ценность
InnerException null
Message Строка message .

Применяется к

AmbiguousMatchException(String, Exception)

Исходный код:
AmbiguousMatchException.cs
Исходный код:
AmbiguousMatchException.cs
Исходный код:
AmbiguousMatchException.cs
Исходный код:
AmbiguousMatchException.cs
Исходный код:
AmbiguousMatchException.cs

Инициализирует новый экземпляр AmbiguousMatchException класса с указанным сообщением об ошибке и ссылкой на внутреннее исключение, которое является причиной этого исключения.

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)

Параметры

message
String

Сообщение об ошибке, объясняющее причину исключения.

inner
Exception

Исключение, которое является причиной текущего исключения. inner Если параметр не nullзадан, текущее исключение возникает в блокеcatch, обрабатывающего внутреннее исключение.

Примеры

В следующем примере показаны два метода, каждая из которых называется Mymethod. Один метод принимает целое число, а другой принимает строку. Если целое число передается Mymethod, используется первый метод. Если строка передается, используется второй метод. Если не удается определить, какой Mymethod из них следует использовать, AmbiguousMatchException создается.

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.

Комментарии

Исключение, которое создается в результате предыдущего исключения, должно содержать ссылку на предыдущее исключение в свойстве InnerException . Свойство InnerException возвращает то же значение, которое передается в конструктор, или null если InnerException свойство не предоставляет внутреннее значение исключения конструктору.

В следующей таблице показаны начальные значения свойств для экземпляра AmbiguousMatchException.

Недвижимость Ценность
InnerException Ссылка на внутреннее исключение.
Message Строка сообщения об ошибке.

См. также раздел

Применяется к