分類:[C#]
2011/04/12(Tue) 19:22:22 編集(投稿者)
c#4.0
拡張メソッドでNullable型を使用しているのですが
どうして以下のようになるのかわかりません。
仕様でしょうか?
public static class AAA
{
public static string TTT(this int? BBB)
{
return "int?";
}
public static string TTT(this object BBB)
{
return "object";
}
}
public partial class Form1 : Form
{
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(666.TTT());
MessageBox.Show(AAA.TTT(666));
}
}
button1をくりっくすると
"object"
"int?"
の順に表示され、同じ結果になりません。
もし、intが実引数の場合、int?が仮引数の拡張メソッドを探せないのであれば
objectが仮引数の拡張メソッドも探せないと思いますがいかがでしょうか?
よろしくお願いします。