using System;
using System.Collections.Generic;
interface IA {
Object vObj{get;}
}
class A<T> : IA where T : struct {
public T v;
public A(T v) { this.v = v; }
public Object vObj { get { return v; } }
}
class B{
public List<IA> ls = new List<IA>();
public B(){
ls.Add(new A<int>(10));
ls.Add(new A<double>(1.5));
}
}
class Test{
static void Main(string[] args){
B b = new B();
foreach (IA a in b.ls){
Console.WriteLine(a.GetType() + ":" + a.vObj);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCmludGVyZmFjZSBJQSB7CiAgICBPYmplY3Qgdk9iantnZXQ7fSAKfQpjbGFzcyBBPFQ+IDogSUEgd2hlcmUgVCA6IHN0cnVjdCB7IAogICAgcHVibGljIFQgdjsKICAgIHB1YmxpYyBBKFQgdikgeyB0aGlzLnYgPSB2OyB9CiAgICBwdWJsaWMgT2JqZWN0IHZPYmogeyBnZXQgeyByZXR1cm4gdjsgfSB9Cn0KY2xhc3MgQnsKICAgIHB1YmxpYyBMaXN0PElBPiBscyA9IG5ldyBMaXN0PElBPigpOwogICAgcHVibGljIEIoKXsKICAgICAgICBscy5BZGQobmV3IEE8aW50PigxMCkpOwogICAgICAgIGxzLkFkZChuZXcgQTxkb3VibGU+KDEuNSkpOwogICAgfQp9CmNsYXNzIFRlc3R7CiAgICBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpewogICAgICAgIEIgYiA9IG5ldyBCKCk7CiAgICAgICAgZm9yZWFjaCAoSUEgYSBpbiBiLmxzKXsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoYS5HZXRUeXBlKCkgKyAiOiIgKyBhLnZPYmopOwogICAgICAgIH0KICAgIH0KfQ==