我有一个泛型类,Class<T>实现IEnumerable<T>.T也被限制实施IConvertable.
我也希望这个类能够假装成一个类似字符串的对象,所以我想实现IEnumerable<char>.然而,IEnumerable<T>与IEnumerable<char>碰撞-如果发生什么事T是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);
}
Run Code Online (Sandbox Code Playgroud)
Eri*_*ert 10
有没有人对如何做到这一点有任何建议?
一般类型的声明,使基础类型可以在建设中统一有时是非法的,几乎总是一个坏主意.避免,避免,避免.
我的建议:如果你想要一个像字符串一样的对象,那么要么覆盖ToString(),要么声明一个显式的(或者,我想,隐式的)转换为字符串.如果用户想要一系列字符,那么他们可以从字符串中获取一个字符.
| 归档时间: |
|
| 查看次数: |
303 次 |
| 最近记录: |