using System;
namespace Chapter01All
{
class GenericClassDemo2
{
public static void Main()
{
var testClass1 = new TestClass<int>(20, 30);
Console.WriteLine(testClass1.GetAns);
var testClass2 = new TestClass<int>(200, 300);
Console.WriteLine(testClass2.GetAns);
var testClass3 = new TestClass<int>();
testClass3 = testClass1 + testClass2;
Console.WriteLine(testClass3.GetAns);
}
}
}
namespace Chapter01All
{
class TestClass<T>
{
T a;
T b;
T ans;
public TestClass(T x , T y)
{
a = x;
b = y;
ans = (dynamic)a + (dynamic)b;
}
public TestClass()
{
a = (dynamic)0;
b = (dynamic)0;
ans = (dynamic)0;
}
public T Seta {
set
{
a = value;
}
}
public T Setb
{
set
{
b = value;
}
}
public T GetAns {
get{
return (dynamic)ans;
}
}
public void MakeAns()
{
ans = (dynamic)a + (dynamic)b;
}
public TestClass<T> CreateAns(TestClass<T> that)
{
var testClass = new TestClass<T>();
testClass.a = (dynamic)this.a + (dynamic)that.a;
testClass.b = (dynamic)this.b + (dynamic)that.b;
testClass.ans = (dynamic)this.ans + (dynamic)that.ans;
return testClass;
}
public static TestClass<T> operator +(TestClass<T> kariobj, TestClass<T> kari)
{
var testClass = new TestClass<T>();
var myGeneric = kariobj.CreateAns(kari);
return myGeneric;
}
}
}
何に使えるかと言うと分かりませんが、頭の体操というか?混乱のもと作り?