У меня есть вопрос, который на самом деле не проблема, но что-то, что сделало меня немного любопытным.
У меня есть класс с двумя методами. Один является статическим методом, а другой - методом экземпляра. Методы имеют одинаковое имя.
public class BlockHeader
{
public static BlockHeader Peek(BinaryReader reader)
{
// Create a block header and peek at it.
BlockHeader blockHeader = new BlockHeader();
blockHeader.Peek(reader);
return blockHeader;
}
public virtual void Peek(BinaryReader reader)
{
// Do magic.
}
}
Когда я пытаюсь построить свой проект, я получаю сообщение об ошибке:
Звонок между
следующие методы или свойства:
'MyApp.BlockHeader.Peek (System.IO.BinaryReader)'
а также
'MyApp.BlockHeader.Peek (System.IO.BinaryReader)'
Я знаю, что сигнатуры метода практически одинаковы, но я не понимаю, как я мог бы вызвать статический метод непосредственно из члена экземпляра.
Я предполагаю, что для этого есть очень веская причина, но кто-нибудь знает, что это за причина?