我有一个通用类,Class<T>
,实现了IEnumerable<T>
. T
也被强制实施IConvertable
.
我还希望这个类能够假装成一个类似字符串的对象,所以我想实现IEnumerable<char>
。然而,IEnumerable<T>
and IEnumerable<char>
碰撞——如果发生什么情况T
is char
?
有人对如何实现这一目标有任何建议吗?
编辑:这里有一些澄清——我希望能够执行以下操作:
public IEnumerator<T> GetEnumerator()
{
for (var i = _offset; i < _offset + _length; i++)
yield return _array[i];
}
public IEnumerator<char> GetEnumerator()
{
for (var i = _offset; i < _offset + _length; i++)
yield return _array[i].ToChar(null);
}
有人对如何实现这一目标有任何建议吗?
声明泛型类型以使基类型可以在构造中统一有时是非法的,而且几乎总是一个坏主意。避免,避免,避免。
我的建议:如果您想要一个像字符串一样的对象,那么要么重写 ToString(),要么声明显式(或者,我认为是隐式)到字符串的转换。如果用户想要一系列字符,那么他们可以从字符串中获取一个。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)