Ошибка: "Ни одна из перегрузок метода не принимает 5 аргументов" - C#
Формулировка задачи:
// Компил ругается на вот эту строку:
// if (FlowControl.ForLoopInitObj( (object) 0, (object) 15, (object) 1, ref LoopForResult, ref CounterResult)) // Ни одна из перегрузок метода "ForLoopInitObj" не принимает "5" аргумент(ов) (CS1501)
private long OpenFileNew()
{
this.TheFile = new Form1.BSPFile();
this.TheFile.FileName = this.TheFileName;
long num1;
try
{
int FileNumber = FileSystem.FreeFile();
this.TheFile.OrigFileSize = checked ((int) new FileInfo(this.TheFile.FileName).Length);
FileSystem.FileOpen(FileNumber, this.TheFile.FileName, OpenMode.Binary, OpenAccess.Default, OpenShare.Default, -1);
this.TheFile.FileData = new string(' ', this.TheFile.OrigFileSize);
FileSystem.FileGet(FileNumber, ref this.TheFile.FileData, 1L, false);
FileSystem.FileClose(FileNumber);
}
catch (Exception ex)
{
ProjectData.SetProjectError(ex);
num1 = 2L;
ProjectData.ClearProjectError();
goto label_28;
}
this.TheFile.FileType = -1;
string sLeft = Strings.Mid(this.TheFile.FileData, 1, 4);
if (StringType.StrCmp(sLeft, "\x001E\0\0\0", false) == 0)
this.TheFile.FileType = 30;
else if (StringType.StrCmp(sLeft, "VBSP", false) == 0)
{
this.TheFile.FileType = 19;
}
else
{
num1 = 1L;
goto label_28;
}
object Counter;
switch (this.TheFile.FileType)
{
case 30:
try
{
int FileNumber = FileSystem.FreeFile();
FileSystem.FileOpen(FileNumber, this.TheFile.FileName, OpenMode.Binary, OpenAccess.Default, OpenShare.Default, -1);
FileSystem.FileGet(FileNumber, ref this.TheFile.OrigEntStartOffset, 5L);
FileSystem.FileGet(FileNumber, ref this.TheFile.OrigEntLength, 9L);
this.TheFile.IsEntLumpAtEnd = true;
object LoopForResult;
object CounterResult;
// if (FlowControl.ForLoopInitObj( (object) 0, (object) 15, (object) 1, ref LoopForResult, ref CounterResult)) // Ни одна из перегрузок метода "ForLoopInitObj" не принимает "5" аргумент(ов) (CS1501)
{
do
{
int num2;
FileSystem.FileGet(FileNumber, ref num2, LongType.FromObject(ObjectType.AddObj((object) 5, ObjectType.MulObj(CounterResult, (object) 8))));
if (num2 > this.TheFile.OrigEntStartOffset)
{
this.TheFile.IsEntLumpAtEnd = false;
break;
}
}
while (FlowControl.ForNextCheckObj(CounterResult, LoopForResult, ref CounterResult));
}
this.TheFile.EntData = new string(' ', this.TheFile.OrigEntLength);
FileSystem.FileGet(FileNumber, ref this.TheFile.EntData, (long) checked (this.TheFile.OrigEntStartOffset + 1), false);
int Length = Strings.InStrRev(this.TheFile.EntData, "}", -1, CompareMethod.Binary);
if (Length < Strings.Len(this.TheFile.EntData))
{
this.TheFile.AfterEntData = Strings.Mid(this.TheFile.EntData, checked (Length + 1), checked (Strings.Len(this.TheFile.EntData) - Length));
this.TheFile.EntData = Strings.Mid(this.TheFile.EntData, 1, Length);
}
else
this.TheFile.AfterEntData = "";
this.TheFile.EntData = Strings.Replace(Strings.Replace(this.TheFile.EntData, "\r\n", "\n", 1, -1, CompareMethod.Binary), "\n", "\r\n", 1, -1, CompareMethod.Binary);
FileSystem.FileClose(FileNumber);
break;
}
catch (Exception ex)
{
ProjectData.SetProjectError(ex);
num1 = 2L;
ProjectData.ClearProjectError();
goto label_28;
}
case 19:
try
{
int FileNumber = FileSystem.FreeFile();
FileSystem.FileOpen(FileNumber, this.TheFileName, OpenMode.Binary, OpenAccess.Default, OpenShare.Default, -1);
FileSystem.FileGet(FileNumber, ref this.TheFile.OrigEntStartOffset, 9L);
FileSystem.FileGet(FileNumber, ref this.TheFile.OrigEntLength, 13L);
this.TheFile.IsEntLumpAtEnd = true;
object LoopForResult;
object CounterResult;
if (FlowControl.ForLoopInitObj(Counter, (object) 0, (object) 50, (object) 1, ref LoopForResult, ref CounterResult))
{
do
{
int num2;
FileSystem.FileGet(FileNumber, ref num2, LongType.FromObject(ObjectType.AddObj((object) 9, ObjectType.MulObj(CounterResult, (object) 16))));
if (num2 > this.TheFile.OrigEntStartOffset)
{
this.TheFile.IsEntLumpAtEnd = false;
break;
}
}
while (FlowControl.ForNextCheckObj(CounterResult, LoopForResult, ref CounterResult));
}
this.TheFile.EntData = new string(' ', this.TheFile.OrigEntLength);
FileSystem.FileGet(FileNumber, ref this.TheFile.EntData, (long) checked (this.TheFile.OrigEntStartOffset + 1), false);
int Length = Strings.InStrRev(this.TheFile.EntData, "}", -1, CompareMethod.Binary);
if (Length < Strings.Len(this.TheFile.EntData))
{
this.TheFile.AfterEntData = Strings.Mid(this.TheFile.EntData, checked (Length + 1), checked (Strings.Len(this.TheFile.EntData) - Length));
this.TheFile.EntData = Strings.Mid(this.TheFile.EntData, 1, Length);
}
else
this.TheFile.AfterEntData = "";
this.TheFile.EntData = Strings.Replace(Strings.Replace(this.TheFile.EntData, "\r\n", "\n", 1, -1, CompareMethod.Binary), "\n", "\r\n", 1, -1, CompareMethod.Binary);
FileSystem.FileClose(FileNumber);
break;
}
catch (Exception ex)
{
ProjectData.SetProjectError(ex);
num1 = 2L;
ProjectData.ClearProjectError();
goto label_28;
}
}
this.TextBox1.Text = this.TheFile.EntData;
this.Text = "EntEd v1.0 - " + new FileInfo(this.TheFile.FileName).Name;
this.IsOpen = true;
this.sfd.FileName = this.TheFile.FileName;
this.SepEnt();
label_28:
return num1;
}Решение задачи: «Ошибка: "Ни одна из перегрузок метода не принимает 5 аргументов"»
textual
Листинг программы
public static bool ForLoopInitObj( object Counter, object Start, object Limit, object StepValue, ref object LoopForResult, ref object CounterResult )