【发布时间】:2016-11-08 21:21:41
【问题描述】:
我正在尝试阅读一些代码。它有这些接口,但在它们内部只有“空”的任务。这些在其他 .cs 文件中被调用,但我看不到任何逻辑发生。
例子:
public interface IProductSubmitter
{
Task SubmitAsync();
}
当我在方法上按 F12 时,它不会去任何地方。这是路的“尽头”。
在另一种方法中是这样使用的:
private IProductSubmitter Submitter {get;}
public async Task SubmitProductAsync(Product product)
{
await this.Submitter.SubmitAsync();
...
}
任何指向正确方向的指针都会很棒。我已经浏览过 C# 接口,但那些似乎包含任务内部的逻辑。
【问题讨论】:
-
你需要找到这些接口的实现来看看实际发生了什么——一个接口只是定义了一个契约。
-
您可以获得的最重要/最直接的指针:阅读 C# 教程
-
接口不包含逻辑,只有实现接口的类必须公开公开的合约或 API。在这种情况下,它是一个正在公开的异步方法。你真的需要找到实现类才能看到真正的逻辑。
-
如果你熟悉接口,你应该知道,接口基本上只是在说“我要让你做一些特定的事情。”。这个界面说“我将有一个
Task类型的SubmitAsync()方法”。该方法的实际逻辑将在任何实际实现接口的类中。 -
对于逻辑,尝试右键单击方法名称->“查看调用层次结构”->“实现”。