Здравствуйте!
Дело в том, что при написании программ я сталкиваюсь с такой проблемой: при нажатии комбинации Ctrl+Shift+F нижний комментарий пропадает. Пример ниже:
{проверка работы}
begin
var a := ReadInteger();
Writeln(a - 1);
end.
{если набрать комбинацию ctrl+shift+f, то данный комментарий исчезнет}
не знаю Ошибка это или нет (прошу пояснить) … замечено что при попытке сделать аналог оператора с# using
uses
system.IO;
procedure Save2File(fn: string);
begin
var fs: Stream := new System.IO.FileStream(fn, FileMode.Create, FileAccess.Write, FileShare.Read);
try
fs.WriteByte(0);
finally
if fs <> nil then
fs.Dispose; //IDisposable
end;
end;
begin
Save2File('test');
end.
при просмотре с помощью ILSpy видим следующий код:
public static void Save2File(string fn)
{
Stream stream = new FileStream(fn, FileMode.Create, FileAccess.Write, FileShare.Read);
try
{
stream.WriteByte(0);
bool flag = true;
throw new Exception();
}
catch (Exception)
{
if (stream != null)
{
stream.Dispose();
}
bool flag;
if (!flag)
{
throw;
}
}
}
хотя вроде должно было получиться:
public static void Save2File(string fn)
{
Stream stream = new FileStream(fn, FileMode.Create, FileAccess.Write, FileShare.Read);
try
{
stream.WriteByte(0);
}
finally
{
if (stream != null)
{
stream.Dispose();
}
}
}
или в идеале
public static void Save2File(string fn)
{
using (Stream stream = new FileStream(fn, FileMode.Create, FileAccess.Write, FileShare.Read))
{
stream.WriteByte(0);
}
}
uses System.Collections;
type
Base = class
procedure VirtProc; virtual; begin end;
end;
Base2 = class(Base)
procedure VirtProc; override; begin writeln('Derived'); end;
end;
AbsBase = abstract class
procedure VirtProc; virtual; begin end;
end;
AbsBase2 = class(AbsBase)
procedure VirtProc; override; begin writeln('Derived'); end; //Ошибка компиляции:Нет метода для переопределения
end;
begin
end.
подскажите как решить проблему:
компилирую программу, запускаю. она запускается.
запускаю второй раз тот же код выдает ошибку "Не возможно получить доступ к файлу ***.exe"
помогает только удаление файл