AmbiguousMatchException AmbiguousMatchException AmbiguousMatchException AmbiguousMatchException Constructors

정의

오버로드

AmbiguousMatchException() AmbiguousMatchException() AmbiguousMatchException()

빈 메시지 문자열과 null로 설정된 근본 원인 예외를 사용하여 AmbiguousMatchException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the AmbiguousMatchException class with an empty message string and the root cause exception set to null.

AmbiguousMatchException(String) AmbiguousMatchException(String) AmbiguousMatchException(String) AmbiguousMatchException(String)

메시지 문자열을 제공된 메시지로 설정하고 근본 원인 예외를 null로 설정하여 AmbiguousMatchException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the AmbiguousMatchException class with its message string set to the given message and the root cause exception set to null.

AmbiguousMatchException(String, Exception) AmbiguousMatchException(String, Exception) AmbiguousMatchException(String, Exception) AmbiguousMatchException(String, Exception)

지정된 오류 메시지와 해당 예외의 원인인 내부 예외에 대한 참조를 사용하여 AmbiguousMatchException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the AmbiguousMatchException class with a specified error message and a reference to the inner exception that is the cause of this exception.

AmbiguousMatchException() AmbiguousMatchException() AmbiguousMatchException()

빈 메시지 문자열과 null로 설정된 근본 원인 예외를 사용하여 AmbiguousMatchException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the AmbiguousMatchException class with an empty message string and the root cause exception set to null.

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

설명

AmbiguousMatchExceptionException에서 상속됩니다.AmbiguousMatchException inherits from Exception. 이 생성자의 속성을 설정 합니다 Exception 다음 표에 나와 있는 것 처럼 개체입니다.This constructor sets the properties of the Exception object as shown in the following table.

속성Property Value
InnerException null
Message 빈 문자열 ("").The empty string ("").
추가 정보

AmbiguousMatchException(String) AmbiguousMatchException(String) AmbiguousMatchException(String) AmbiguousMatchException(String)

메시지 문자열을 제공된 메시지로 설정하고 근본 원인 예외를 null로 설정하여 AmbiguousMatchException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the AmbiguousMatchException class with its message string set to the given message and the root cause exception set to null.

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

매개 변수

message
String String String String

이 예외가 throw된 원인을 나타내는 문자열입니다.A string indicating the reason this exception was thrown.

설명

AmbiguousMatchExceptionException에서 상속됩니다.AmbiguousMatchException inherits from Exception. 이 생성자의 속성을 설정 합니다 Exception 다음 표에 나와 있는 것 처럼 개체입니다.This constructor sets the properties of the Exception object as shown in the following table.

속성Property Value
InnerException null
Message message 문자열입니다.The message string.

AmbiguousMatchException(String, Exception) AmbiguousMatchException(String, Exception) AmbiguousMatchException(String, Exception) AmbiguousMatchException(String, Exception)

지정된 오류 메시지와 해당 예외의 원인인 내부 예외에 대한 참조를 사용하여 AmbiguousMatchException 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the AmbiguousMatchException class with a specified error message and a reference to the inner exception that is the cause of this exception.

public:
 AmbiguousMatchException(System::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 String String String

예외에 대한 이유를 설명하는 오류 메시지입니다.The error message that explains the reason for the exception.

inner
Exception Exception Exception Exception

현재 예외의 원인인 예외입니다.The exception that is the cause of the current exception. inner 매개 변수가 null이 아니면 현재 예외는 내부 예외를 처리하는 catch 블록에서 발생합니다.If the inner parameter is not null, the current exception is raised in a catch block that handles the inner exception.

예제

다음 예제에서는 각각의 명명 된 Mymethod합니다.The following example shows two classes, each named Mymethod. 하나의 클래스는 정수 하 고 다른 하나는 문자열입니다.One class takes an integer and the other takes a string. 정수를 전달 하는 경우 Mymethod의 첫 번째 클래스는 사용 됩니다.If an integer is passed to Mymethod, the first class is used. 문자열을 전달 하는 경우 두 번째 클래스 사용 됩니다.If a string is passed, the second class is used. 수 없는 경우 결정 Mymethod 를 사용 하려면 AmbiguousMatchException throw 됩니다.If it cannot be determined which Mymethod to use, AmbiguousMatchException is thrown.

using namespace System;
using namespace System::Reflection;

namespace Ambiguity
{
    ref class Myambiguous
    {
    public:

        //The first overload is typed to an Int32
        static void Mymethod(Int32 number)
        {
            Console::WriteLine("I am from 'Int32' method");
        }

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

        static void Main()
        {
            try
            {
                //The following does not cause as exception
                Mymethod(2);    // goes to Mymethod (Int32)
                Mymethod("3");  // goes to Mymethod (String*)
                Type^ Mytype = Type::GetType("Ambiguity.Myambiguous");
                array<Type^>^temp0 = {Int32::typeid};
                MethodInfo^ Mymethodinfo32 = Mytype->GetMethod("Mymethod", temp0);
                array<Type^>^temp1 = {System::String::typeid};
                MethodInfo^ Mymethodinfostr = Mytype->GetMethod("Mymethod", temp1);

                //Invoke a method, utilizing a Int32 integer
                array<Object^>^temp2 = {2};
                Mymethodinfo32->Invoke(nullptr, temp2);

                //Invoke the method utilizing a String^
                array<Object^>^temp3 = {"1"};
                Mymethodinfostr->Invoke(nullptr, temp3);

                //The following line causes an ambiguous exception
                MethodInfo^ Mymethodinfo = Mytype->GetMethod("Mymethod");
            }
            catch (AmbiguousMatchException^ ex)
            {
                Console::WriteLine("\n{0}\n{1}", ex->GetType()->FullName, ex->Message);
            }
            catch (...)
            {
                Console::WriteLine("\nSome other exception.");
            }

            return;
        }
    };
}

int main()
{
    Ambiguity::Myambiguous::Main();
}

//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.
using System;
using System.Reflection;

namespace Ambiguity
{
    class Myambiguous
    {
        //The first overload is typed to an Int32
        public static void Mymethod(Int32 number)
        {
           Console.WriteLine("I am from 'Int32' 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(Int32)
                Mymethod("3");  // goes to Mymethod(string)

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

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

                //Invoke a method, utilizing a Int32 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 'Int32' method
// I am from 'string' method.
// I am from 'Int32' 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(vbNewLine + "{0}" + vbNewLine + "{1}", ex.GetType().FullName, ex.Message)
            Catch
                Console.WriteLine(vbNewLine + "Some other exception.")
            End Try
            Return
        End Sub
    End Class 'Myambiguous
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.

설명

이전 예외의 직접적인 결과로 throw되는 예외의 InnerException 속성에는 이전 예외에 대한 참조가 들어 있어야 합니다.An exception that is thrown as a direct result of a previous exception should include a reference to the previous exception in the InnerException property. InnerException 속성은 생성자에 전달되는 값과 동일한 값을 반환하며, null 속성이 생성자에 내부 예외 값을 제공하지 않는 경우에는 InnerException을 반환합니다.The InnerException property returns the same value that is passed into the constructor, or null if the InnerException property does not supply the inner exception value to the constructor.

다음 표에서는 AmbiguousMatchException 인스턴스의 초기 속성 값을 보여 줍니다.The following table shows the initial property values for an instance of AmbiguousMatchException.

속성Property Value
InnerException 내부 예외 참조입니다.The inner exception reference.
Message 오류 메시지 문자열입니다.The error message string.
추가 정보

적용 대상