C# 4.5 でジェネリック データ型を理解しようとしています。戻り値の型が bool の単純なメソッド CompareMyValue が 2 つの値を比較するクラス チェックを作成しました。現在、メインクラスでオブジェクトを作成し、入力パラメーターを使用してこのメソッドを呼び出していますが、デバッグ中にメインクラス呼び出しのメソッドが bool a1 と a2 に対して正しい結果を返さないことに気付きました。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace C_Sharp_Practice_Code_01.GenericCollection
{
class check<UNKNOWNDATATYPE>
{
public bool CompareMyValue(UNKNOWNDATATYPE x, UNKNOWNDATATYPE y)
{
if(x.Equals(y))
{
return true;
}
else
{
return false;
}
}
}
}
メインクラス
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using C_Sharp_Practice_Code_01.GenericCollection;
namespace C_Sharp_Practice_Code_01
{
class mainClass
{
static void Main(string[] args)
{
mainClass obj1 = new mainClass();
obj1.call_GenericClass();
}
public void call_GenericClass()
{
check<int> _check = new check<int>();
check<string> _check2 = new check<string>();
bool a1 = _check.CompareMyValue(1, 1);
bool a2 = _check2.CompareMyValue("xyz", "xyz");
}
}
}