繁体   English   中英

如果我不实现部分方法会怎样?

[英]what happens if I don't implement a partial method?

我使用SQLMetal生成了一些代码,并使用了一段时间。 刚才,我浏览了生成的代码,并在每个类中找到了一些我从未实现过的部分函数,​​这些函数也未由SQLMetal实现。 这些函数在代码中被调用。 我想知道-当我调用这样的函数时会发生什么-不存在吗?

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

该调用已被编译器完全删除。 为了调用该方法而求值的所有表达式也将被删除-因此,如果您具有以下条件:

SomePartialMethod(ComputeSomeValue());

SomePartialMethod不落实, ComputeSomeValue不会被调用。

或如MSDN所说

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM