设为可选参数我有一些方法,如下面:前out参数
public static bool TryDoSth(byte[] data, out int size)
{
return TryDoSth(data, 0, StyleEnum.Default, out size);
}
public static bool TryDoSth(byte[] data, int offset, out int size)
{
return TryDoSth(data, offset, StyleEnum.Default, out size);
}
public static bool TryDoSth(byte[] data, StyleEnum style, out int size)
{
return TryDoSth(data, 0, style, out int size)
}
public static bool TryDoSth(byte[] data, int offset, StyleEnum style, out int size) {
// Do Sth.
}
所以我尝试简化它们:
public static bool TryDoSth(byte[] data,
int offset = 0,
StyleEnum style = StyleEnum.Default,
out int size)
我得到一个错误,我已经读了!
“可选参数必须出现所有必需的参数后”
out参数有一个关键字out
,我认为这并不意味着不确定性的可选参数的输出参数之前。请不要指责我不读错误,我只是想确保没有办法实现它。
所以我有什么办法,使offset
和style
是没有过载可选和保持参数命令?
我认为结束时的out参数更具可读性。
int size;
TryDoSth(data, out size);
TryDoSth(data, offset, out size);
TryDoSth(data, offset, style, out size);
你可以把它们出来后。我给你-1没有阅读错误,并没有尝试 – EpicKip
我已阅读错误!我只是问为什么! out参数有一个关键字'out'!我认为这并不意味着可选参数在out参数之前出现含糊不清! –
@PMExtra阅读我的答案 – Adrian