she*_*min 3 .net c# oop struct design-patterns
有一个现有的class
从第三方库我想重复使用,但它并没有实现一些所需的界面.我正在考虑将其包装在一个内部struct
以满足所需的接口(基本上就像Scala一样).为什么我喜欢的原因struct
在class
这个用例是因为它只能存储一两件事:被包装的对象,而且它可能不会招致性能损失?但是我不确定如果我传递一个struct
接受接口的方法会发生装箱吗?这种方法还有其他缺点吗?
Microsoft给出了非常明确和直接的原因,您应该使用struct
而不是class
:
√如果类型的实例很小并且通常是短暂的或者通常嵌入在其他对象中,则CONSIDER定义结构而不是类.
X AVOID定义结构,除非该类型具有以下所有特征:
http://msdn.microsoft.com/en-us/library/ms229017.aspx
似乎不是你的情况.顺便说一下,如果你把struct
一个方法传递给一个方法,就会发生拳击interface
.还要考虑结构不支持继承,并且它们不能具有显式的无参数构造函数.