我有一个问题,这不是一个真正的问题,但让我有点好奇。
我有一个类,里面有两种方法。一种是静态方法,另一种是实例方法。这些方法具有相同的名称。
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)”
我知道方法签名实际上是相同的,但我看不出我怎么可能直接从实例成员调用静态方法。
我认为这是有充分理由的,但有人知道这是什么原因吗?