AmbiguousMatchException Konstruktory
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Inicializuje novou instanci AmbiguousMatchException třídy.
Přetížení
| Name | Description |
|---|---|
| AmbiguousMatchException() |
Inicializuje novou instanci AmbiguousMatchException třídy s prázdným řetězcem zprávy a původní příčinou výjimky nastavena na |
| AmbiguousMatchException(String) |
Inicializuje novou instanci AmbiguousMatchException třídy s jejím řetězcem zprávy nastaveným na danou zprávu a původní příčinou výjimka nastavena na |
| AmbiguousMatchException(String, Exception) |
Inicializuje novou instanci AmbiguousMatchException třídy se zadanou chybovou zprávou a odkazem na vnitřní výjimku, která je příčinou této výjimky. |
AmbiguousMatchException()
Inicializuje novou instanci AmbiguousMatchException třídy s prázdným řetězcem zprávy a původní příčinou výjimky nastavena na null.
public:
AmbiguousMatchException();
public AmbiguousMatchException();
Public Sub New ()
Poznámky
AmbiguousMatchException dědí z Exception. Tento konstruktor nastaví vlastnosti objektu Exception , jak je znázorněno v následující tabulce.
| Vlastnictví | Hodnota |
|---|---|
| InnerException | null |
| Message | Prázdný řetězec (""). |
Viz také
Platí pro
AmbiguousMatchException(String)
Inicializuje novou instanci AmbiguousMatchException třídy s jejím řetězcem zprávy nastaveným na danou zprávu a původní příčinou výjimka nastavena na 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)
Parametry
- message
- String
Řetězec označující důvod, proč byla tato výjimka vyvolán.
Poznámky
AmbiguousMatchException dědí z Exception. Tento konstruktor nastaví vlastnosti objektu Exception , jak je znázorněno v následující tabulce.
| Vlastnictví | Hodnota |
|---|---|
| InnerException | null |
| Message | Řetězec message . |
Platí pro
AmbiguousMatchException(String, Exception)
Inicializuje novou instanci AmbiguousMatchException třídy se zadanou chybovou zprávou a odkazem na vnitřní výjimku, která je příčinou této výjimky.
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)
Parametry
- message
- String
Chybová zpráva, která vysvětluje důvod výjimky.
- inner
- Exception
Výjimka, která je příčinou aktuální výjimky. Pokud parametr inner není null, aktuální výjimka je vyvolána v bloku catch, který zpracovává vnitřní výjimku.
Příklady
Následující příklad ukazuje dvě metody, z nichž každý má název Mymethod. Jedna metoda přebírá celé číslo a druhá přebírá řetězec. Pokud je celé číslo předáno Mymethod, použije se první metoda. Pokud je řetězec předán, použije se druhá metoda. Pokud nelze určit, který Mymethod použít, AmbiguousMatchException je vyvolán.
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.
Poznámky
Výjimka vyvolaná jako přímý výsledek předchozí výjimky by měla obsahovat odkaz na předchozí výjimku ve vlastnosti InnerException. Vlastnost InnerException vrátí stejnou hodnotu, která je předána do konstruktoru, nebo null, pokud vlastnost InnerException nezadává vnitřní hodnotu výjimky konstruktoru.
Následující tabulka uvádí počáteční hodnoty vlastností pro instanci AmbiguousMatchException.
| Vlastnictví | Hodnota |
|---|---|
| InnerException | Odkaz na vnitřní výjimku. |
| Message | Řetězec chybové zprávy. |