不幸的是,我无法显示代码,但这是故事: 我应该学习我们在工作中使用的程序是如何工作的。我将数据流从用户界面元素跟踪到函数的深层内部。但是现在,在课堂定义中我被卡住了。我正在跟踪的数据被传递给一个函数。在类中有一行带有该函数的函数签名,但没有实现。
如何查找实施?所有代码(Microsoft除外)都是内部开发的,应该驻留在项目中,但Go To Definition只会让我回到签名中。
我们正在使用C#和.Net 4.0。
这是一行:
public abstract class SomethingDoer : SomethingElse
// ...
protected abstract void DoSomething(T1 param1, T2 param2, T3 param3);
现在我正在通过寻找SomethingDoer的引用来寻找实现类,但不幸的是,这个断点没有达到。我是否有错误的课程,或者我错过了有关抽象函数的内容?
答案 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)
如果您真的在查看源代码,可能是
abstract
方法partial
方法extern
方法在第一种情况下,实现是在从这个类派生的类中。在第二种情况下,实现是该类定义的另一个“部分”,可能在另一个文件中。在第三种情况下,实现位于正在导入的某个(本机)DLL中。
另一种可能性是你实际上并没有查看源代码,而是仅查看从C#项目文件中的程序集引用生成的元数据。
您看到哪种关键字abstract
,partial
或extern
?
答案 2 :(得分:0)
这意味着你只编译了没有魔法的类。可能是一些DLL?
答案 3 :(得分:0)
您是否正在查看界面?
接口具有已定义的功能但没有实现。它用于表明它们存在并且必须符合规范。
您不能发布示例代码并更改措辞供我们查看吗?