そのような定義を考えると
public class KeyValueItem<K,V>
{
    public K Key { get; set; }
    public V Value { get; set; }
    public override string ToString()
    {
        return T.ToString(); // does not compile
    }
}
ToString()をオーバーライドしてV.ToString();を返すにはどうすればよいですか。