问题标签 [partial-methods]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
879 浏览

c# - 如何在 C# 中使用部分方法来扩展现有实现

如果这行得通,那就太好了。我是否试图以错误的方式实现我的想法?

我想使用部分方法,以便能够扩展现有代码,并简单地插入/退出方法的实现。

基本上正是参考文献所说的:

部分方法使类设计者能够提供方法挂钩,类似于事件处理程序,开发人员可以决定是否实现这些方法。如果开发人员不提供实现,编译器会在编译时删除签名。

我第一次尝试使用它如下:

定义Base.cs:

定义Ext.cs:

程序.cs:

它是相同的命名空间,但作为引用状态,部分方法是隐式私有的。它不接受访问修饰符,我不能从我的班级中调用它。有没有办法按照我的意图使用它?

谢谢!

0 投票
0 回答
115 浏览

c# - 无论如何使用基本实现(继承)来实现部分方法?

我在我LinqToSql的一个项目中使用,我想要一堆表在加载时做一些事情。

每个表都实现了一个部分类,并继承了一个执行某些业务逻辑的基类。

我的代码看起来像这样:

partial void OnLoaded方法适合我,但我不想在每个表上重新实现该方法。

由于我没有找到做事的方法,它会让我实现我的表格,看起来像这样:

不能使用代码生成器之类的T4Templates东西,因为我不知道我需要的确切表名,而且一些表需要在它们的部分类中进行一些特定的覆盖。

我想以某种方式使用基本实现来实现部分方法。

有什么好的方法可以实现这样的目标吗?甚至类似的东西?

0 投票
1 回答
54 浏览

c# - “实现声明中的参数和类型参数名称不必与定义中的相同”是什么意思?

在阅读C# 文档中的“部分方法”时,我发现了以下句子:

实现声明中的参数和类型参数名称不必与定义声明中的相同。

有人可以用一个例子解释一下这句话是什么意思吗?

0 投票
3 回答
7592 浏览

c# - C#中的部分方法解释

我很难理解部分方法的用法。

您能否提供一个与 LINQ 或此类数据库无关的示例?

部分方法是否与我们在 WinForms 中并在其后面编码时相同,如果我们使用一个方法,它会被编译,但如果我们不这样做,那么它会被编译器删除?那是对的吗?

0 投票
2 回答
118 浏览

.net - 为什么我们不能写部分函数?

让我们假设我们有一个Partial Class被调用的Foo,像这样:

这是一个Class被调用Foo并且有一个Partial方法。我的问题是:为什么Partial Function像这样使用 s 是非法的:

?

0 投票
1 回答
497 浏览

c# - C# 中的部分方法和参数

ref 和 out 可以改变函数参数的行为。有时我们希望将变量的实际值复制为参数。其他时候我们需要参考。这些修饰符影响明确的赋值分析。

我的问题是:C# 中的部分方法可以有 ref、out、可选的输入参数吗?

0 投票
0 回答
270 浏览

c# - 部分方法 - 多个实施声明替代解决方案?

我目前正在尝试理解部分方法的目的,因为我希望使用它们的方式就像一个事件。

Example.cs

Example.Hello.cs

Example.World.cs

使用上面的示例 pysudeo 代码,我希望控制台说“HELLOWORLD”。这就是我最初认为部分方法应该工作的方式,我相信我理解为什么它不能以这种方式工作,但我希望有人可以帮助我想出另一种方法来完成这个工作。

本质上,我只想调用一种方法,并让该方法能够引导我的 Example.cs 对象所需的所有数据。

为了清楚起见,我知道应用程序不知道如何对函数调用进行排序。但老实说,我不关心我的例子中的顺序。它可以说“WORLDHELLO”,我所关心的。

0 投票
2 回答
103 浏览

c# - C# 中的通用部分方法?

部分类和部分方法状态:

部分方法可以是通用的。约束放在定义的部分方法声明上,并且可以选择在实现的部分上重复。实现声明中的参数和类型参数名称不必与定义声明中的相同。

"Constraints are put on the defining partial method declaration, and may optionally be repeated on the implementing one."视觉上和的代码示例是"Parameter and type parameter names do not have to be the same in the implementing declaration as in the defining one."什么?

我不知道上面 2 个语句在代码中的视觉效果如何。