【解決方法】デフォルトのパラメータ指定子は許可されていません


こんにちは ……

C#
private string formatSizeBinary(Int64 size, Int32 decimals = 2)
        {
            string[] sizes = { "Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB" };
            double formattedSize = size;
            Int32 sizeIndex = 0;
            while (formattedSize >= 1024 & sizeIndex < sizes.Length)
            {
                formattedSize /= 1024;
                sizeIndex += 1;
            }
            return string.Format("{0} {1}", Math.Round(formattedSize, decimals).ToString(), sizes[sizeIndex]);
        }

「Int32 decimals = 2」で「デフォルトのパラメーター指定子は許可されていません」というエラーが発生しました

vs2008 および .net Framework 2.o で

解決策 3

C# 4.0 より前の C# では、省略可能なパラメーターを指定できません。
http://msdn.microsoft.com/en-gb/library/dd264739.aspx[^]

代わりに、他のパラメーターを受け入れ、必要なデフォルトを使用して他のメソッドを呼び出す、オーバーロードされたメソッドを提供できます。 したがって:

C#
private string formatSizeBinary(Int64 size, Int32 decimals)
{
   // ... your code here ...
}

private string formatSizeBinary(Int64 size)
{
   return formatSizeBinary(size, 2)
}

よろしく、
イアン。

解決策 4

プライベート文字列 formatSizeBinary(Int64 size, Int32 decimals )
{
if(小数 == null)
小数 = 2;
if(小数 == “”)
小数 = 2;
弦[] サイズ = { “バイト”、”KB”、”MB”、”GB”、”TB”、”PB”、”EB”、”ZB”、”YB” };
ダブルフォーマットされたサイズ=サイズ;
Int32 sizeIndex = 0;
while (formattedSize >= 1024 & sizeIndex < size.Length)
{
フォーマットされたサイズ/= 1024;
sizeIndex += 1;
}
string.Format(“{0} {1}”, Math.Round(formattedSize, decimals).ToString(), サイズを返す[sizeIndex]);
}

コメント

タイトルとURLをコピーしました