gpt4 book ai didi

c# - 如何避免方法重载?

转载 作者:太空狗 更新时间:2023-10-29 22:14:43 24 4
gpt4 key购买 nike

我有以下情况:

构造函数有 6 个值。其中一些有默认值,一些没有。

#pseudocode# Foo(int a, int b=2, int c=3, int d=4, int e=5, int f){}

而且我希望能够调用所有可能的组合,而不必总是编写所有 6 个参数。

#pseudocode# Foo f1 = new Foo(a=1, d=7, f=6);
#pseudocode# Foo f2 = new Foo(a=1, b=9, d=7, f=6);

除了通过方法重载(这会很乏味)之外,还有更优雅的解决方案吗?

最佳答案

在 C# 4 中,有命名参数参见 Named and Optional Arguments (C# Programming Guide)

这会导致

new Foo(a: 1, d: 7, f: 6);

另一种解决方案是使用默认值定义构造函数并使用对象初始化器设置值 How to: Initialize Objects by Using an Object Initializer (C# Programming Guide)

new Foo()
{
a = 1,
d = 7,
f = 6
};

关于c# - 如何避免方法重载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6655915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com