C#

 リードオンリーなメンバしかなければstructにしてもかまわない。複数の戻り値を返す場合はリードオンリーストラクトは便利だ。immutableといった方が知識があるっぽい。

 それ以外のケースでstructにしていい場合が思いつかない。

 interfaceでいける場合はinterfaceにすべきだ。パフォーマンス? 知ったことか。クラスを継承するとすぐ静的型の限界に直面する。Extension Methodのおかげでinterfaceでいける場面がずいぶん増えた。