gpt4 book ai didi

.net-4.0 - C#4.0 : Method parameter default values as array

转载 作者:行者123 更新时间:2023-12-04 13:35:20 25 4
gpt4 key购买 nike

是否可以在C#4.0方法默认值参数中将其作为数组使用(例如string [] sArray)?
如果是,如何实现?

我尝试了如下的调用函数:

MethodA(string[] legends=new string[]{"a","b"},float[] values=new float[]{1,2}, string alt="sd");

不行

最佳答案

正如其他人所说,默认值不能是数组。但是,避免这种情况的一种方法是将默认值设置为null,然后在必要时初始化数组:

public void Foo(int[] x = null)
{
x = x ?? new int[] { 5, 10 };
}

或者,如果您不打算对数组进行突变或将其公开给调用者,请执行以下操作:
private static readonly int[] FooDefault = new int[] { 5, 10 };
public void Foo(int[] x = null)
{
x = x ?? FooDefault;
}

请注意,这假定 null不是出于任何其他原因而要使用的值。这不是一个全局适用的想法,但在某些情况下您不能将默认值表示为编译时常数,则它会很好地工作。您可以对 Encoding.UTF8这样的东西使用相同的东西作为默认编码。

如果要使用值类型参数,则可以将该参数设为可为空的参数。例如,假设您想将参数默认为处理器数量(显然不是编译时常量),则可以执行以下操作:
public void RunInParallel(int? cores = null)
{
int realCores = cores ?? Environment.ProcessorCount;
}

关于.net-4.0 - C#4.0 : Method parameter default values as array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3138333/

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