設爲可選參數我有一些方法,如下面:前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