如果我不实现部分方法会发生什么

本文关键字:什么 方法 实现部 如果 | 更新日期: 2023-09-27 18:33:30

我用SQLMetal生成了一些代码,并用了一段时间。刚才,我浏览了生成的代码,并在每个类中喜欢一些我从未实现过的部分函数,SQLMetal 也没有实现它们。这些函数是在代码中调用的。我想知道 - 当我调用这样的函数时会发生什么 - 它不存在?

如果我不实现部分方法会发生什么

这些函数是在代码中调用的。我想知道 - 当我调用这样的函数时会发生什么 - 它不存在?

编译器将完全删除该调用。为了调用该方法而计算的任何表达式也会被删除 - 所以如果你有这个:

SomePartialMethod(ComputeSomeValue());

并且SomePartialMethod未实现,则不会调用ComputeSomeValue

或者正如MSDN所说:

如果未实现该方法,则编译器将删除方法签名和对该方法的所有调用。对方法的调用(包括计算调用中的参数所产生的任何结果)在运行时不起作用。因此,分部类中的任何代码都可以自由使用分部方法,即使未提供实现也是如此。如果调用该方法但未实现该方法,则不会产生编译时或运行时错误。