没有实现的函数签名在类定义中意味着什么?

时间:2012-08-03 11:55:31

标签: c# c#-4.0 signature

不幸的是,我无法显示代码,但这是故事: 我应该学习我们在工作中使用的程序是如何工作的。我将数据流从用户界面元素跟踪到函数的深层内部。但是现在,在课堂定义中我被卡住了。我正在跟踪的数据被传递给一个函数。在类中有一行带有该函数的函数签名,但没有实现。

如何查找实施?所有代码(Microsoft除外)都是内部开发的,应该驻留在项目中,但Go To Definition只会让我回到签名中。

我们正在使用C#和.Net 4.0。

这是一行:

public abstract class SomethingDoer : SomethingElse
    // ...
    protected abstract void DoSomething(T1 param1, T2 param2, T3 param3);

现在我正在通过寻找SomethingDoer的引用来寻找实现类,但不幸的是,这个断点没有达到。我是否有错误的课程,或者我错过了有关抽象函数的内容?

4 个答案:

答案 0 :(得分:3)

没有代码,这真的很难回答。没有实现的函数定义通常是接口或抽象。接口可以具有定义,而abstract可以混合使用两者:

public interface ISomeInterface {
    void SomeMethod();
}

public abstract SomeAbstractClass {
    public abstract void SomeMethod();

    public void AwesomeMethod() {
        // I do awesome things; look at my method body!
    }
}

答案 1 :(得分:1)

如果您真的在查看源代码,可能是

  1. abstract方法
  2. 一个partial方法
  3. extern方法
  4. 在第一种情况下,实现是在从这个类派生的类中。在第二种情况下,实现是该类定义的另一个“部分”,可能在另一个文件中。在第三种情况下,实现位于正在导入的某个(本机)DLL中。

    另一种可能性是你实际上并没有查看源代码,而是仅查看从C#项目文件中的程序集引用生成的元数据。

    您看到哪种关键字abstractpartialextern

答案 2 :(得分:0)

这意味着你只编译了没有魔法的类。可能是一些DLL?

答案 3 :(得分:0)

您是否正在查看界面?

接口具有已定义的功能但没有实现。它用于表明它们存在并且必须符合规范。

您不能发布示例代码并更改措辞供我们查看吗?