Я пытаюсь: RandomBytes
генерирует случайные байты (то есть, это перечислимо). RandomNBytes
- это то же самое, но N
случайных байтов (оно расширяет RandomBytes
). Итак, код:
class RandomBytes : IEnumerable<byte>, IEnumerable {
public IEnumerator<byte> GetEnumerator() {
var rnd = new Random();
while (true) {
yield return (byte)rnd.Next(0, 255);
}
}
IEnumerator IEnumerable.GetEnumerator() {
return this.GetEnumerator();
}
}
class RandomNBytes : RandomBytes {
readonly UInt64 Count;
RandomNBytes (UInt64 count) {
Count = count;
}
public new IEnumerator<byte> GetEnumerator() {
return ((IEnumerable<byte>)base).Take(Count);
}
}
Но есть проблема с base
, VC выдает ошибку: использование ключевого слова "base" недопустимо в этом контексте. Как вызвать Take()
сверх перечислимого базового класса?