Aracılığıyla paylaş


AmbiguousMatchException Oluşturucular

Tanım

AmbiguousMatchException sınıfının yeni bir örneğini başlatır.

Aşırı Yüklemeler

Name Description
AmbiguousMatchException()

Boş bir ileti dizesi ve kök neden özel durumu olarak ayarlanmış şekilde sınıfının yeni bir örneğini AmbiguousMatchExceptionnullbaşlatır.

AmbiguousMatchException(String)

sınıfın AmbiguousMatchException yeni bir örneğini, ileti dizesi verilen iletiye ve kök neden özel durumu olarak ayarlanmış olarak nullbaşlatır.

AmbiguousMatchException(String, Exception)

Sınıfın AmbiguousMatchException yeni bir örneğini belirtilen bir hata iletisiyle ve bu özel durumun nedeni olan iç özel duruma başvuruyla başlatır.

AmbiguousMatchException()

Kaynak:
AmbiguousMatchException.cs
Kaynak:
AmbiguousMatchException.cs
Kaynak:
AmbiguousMatchException.cs
Kaynak:
AmbiguousMatchException.cs
Kaynak:
AmbiguousMatchException.cs

Boş bir ileti dizesi ve kök neden özel durumu olarak ayarlanmış şekilde sınıfının yeni bir örneğini AmbiguousMatchExceptionnullbaşlatır.

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

Açıklamalar

AmbiguousMatchException öğesinden Exceptiondevralır. Bu oluşturucu, aşağıdaki tabloda gösterildiği gibi nesnenin Exception özelliklerini ayarlar.

Mülkiyet Değer
InnerException null
Message Boş dize ("").

Ayrıca bkz.

Şunlara uygulanır

AmbiguousMatchException(String)

Kaynak:
AmbiguousMatchException.cs
Kaynak:
AmbiguousMatchException.cs
Kaynak:
AmbiguousMatchException.cs
Kaynak:
AmbiguousMatchException.cs
Kaynak:
AmbiguousMatchException.cs

sınıfın AmbiguousMatchException yeni bir örneğini, ileti dizesi verilen iletiye ve kök neden özel durumu olarak ayarlanmış olarak nullbaşlatır.

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)

Parametreler

message
String

Bu özel durumun neden oluşturulduğunu gösteren bir dize.

Açıklamalar

AmbiguousMatchException öğesinden Exceptiondevralır. Bu oluşturucu, aşağıdaki tabloda gösterildiği gibi nesnenin Exception özelliklerini ayarlar.

Mülkiyet Değer
InnerException null
Message Dize message .

Şunlara uygulanır

AmbiguousMatchException(String, Exception)

Kaynak:
AmbiguousMatchException.cs
Kaynak:
AmbiguousMatchException.cs
Kaynak:
AmbiguousMatchException.cs
Kaynak:
AmbiguousMatchException.cs
Kaynak:
AmbiguousMatchException.cs

Sınıfın AmbiguousMatchException yeni bir örneğini belirtilen bir hata iletisiyle ve bu özel durumun nedeni olan iç özel duruma başvuruyla başlatır.

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)

Parametreler

message
String

Özel durumun nedenini açıklayan hata iletisi.

inner
Exception

Geçerli özel durumun nedeni olan özel durum. inner parametresi değilsenull, geçerli özel durum, iç özel durumu işleyen bir catch blokta oluşturulur.

Örnekler

Aşağıdaki örnekte, her birinde adlı Mymethodiki yöntem gösterilmektedir. Yöntemlerden biri tamsayı, diğeri bir dize alır. 'a Mymethodbir tamsayı geçirilirse, ilk yöntem kullanılır. Bir dize geçirilirse, ikinci yöntem kullanılır. Hangisinin Mymethod kullanılacağı belirlenemezse, AmbiguousMatchException oluşturulur.

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.

Açıklamalar

Önceki bir özel durumun doğrudan sonucu olarak oluşan bir özel durum, özelliğindeki önceki özel duruma başvuru içermelidir InnerException . InnerException özelliği oluşturucuya geçirilen aynı değeri döndürür veya null özelliği oluşturucuya iç özel durum değeri sağlamaz.InnerException

Aşağıdaki tabloda, örneğinin ilk özellik değerleri gösterilmektedir AmbiguousMatchException.

Mülkiyet Değer
InnerException İç özel durum başvurusu.
Message Hata iletisi dizesi.

Ayrıca bkz.

Şunlara uygulanır