ドキュメント に記載されているとおり そのコンストラクターの場合:
自分の場合とは異なるコンストラクターを呼び出していただけです。
この理由は、C#では暗黙的が許可されているためです。 整数リテラル0
からの変換 列挙型(その下にある整数型)に変換すると、この暗黙の変換によって(string, SqlDbType)
が発生します。 int
を変換するために必要なボクシングの変換よりも、オーバーロードの解決に適したコンストラクター object
へ (string, object)
の場合 コンストラクター。
int
を渡す場合、これが問題になることはありません。 変数 、その変数の値が0
であっても (ゼロリテラルではないため)、またはタイプがint
の他の式 。 int
を明示的にキャストした場合も発生しません object
へ 上記のように、一致するオーバーロードは1つしかないためです。