AmbiguousMatchException コンストラクター
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
AmbiguousMatchException クラスの新しいインスタンスを初期化します。
オーバーロード
| 名前 | 説明 |
|---|---|
| AmbiguousMatchException() |
AmbiguousMatchException クラスの新しいインスタンスを、空のメッセージ文字列を使用して初期化し、根本原因の例外を |
| AmbiguousMatchException(String) |
指定されたメッセージにメッセージ文字列を設定し、根本原因の例外を |
| AmbiguousMatchException(String, Exception) |
指定したエラー メッセージと、この例外の原因である内部例外への参照を使用して、 AmbiguousMatchException クラスの新しいインスタンスを初期化します。 |
AmbiguousMatchException()
AmbiguousMatchException クラスの新しいインスタンスを、空のメッセージ文字列を使用して初期化し、根本原因の例外を null に設定します。
public:
AmbiguousMatchException();
public AmbiguousMatchException();
Public Sub New ()
注釈
AmbiguousMatchException は、Exception から継承されます。 このコンストラクターは、次の表に示すように、 Exception オブジェクトのプロパティを設定します。
| 財産 | 価値 |
|---|---|
| InnerException | null |
| Message | 空の文字列 ("")。 |
こちらもご覧ください
適用対象
AmbiguousMatchException(String)
指定されたメッセージにメッセージ文字列を設定し、根本原因の例外を null に設定して、AmbiguousMatchException クラスの新しいインスタンスを初期化します。
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 クラスの新しいインスタンスを初期化します。
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 という名前の 2 つのメソッドを示しています。 1 つのメソッドは整数を受け取り、もう 1 つのメソッドは文字列を受け取ります。 整数が Mymethodに渡された場合、最初のメソッドが使用されます。 文字列が渡された場合、2 番目のメソッドが使用されます。 使用する 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 | エラー メッセージ文字列。 |