svetkaiv
?>

Ариант 1. 1.Какие вирусы могут заразить следующие объектыс) файл иллюстрация.pptd) файл setup.exe2. Исправьте ошибки-Компьютерный вирус - это прикладная программа.Загрузочные вирусы заражают документы.Полифаги запоминают сведения о состоянии файлов и системных областей дисков​

Информатика

Ответы

leobashkurov1089

Объяснение:

Начну с того, что в программах на языке C# используются управляемые и неуправляемые объекты. Управляемые объекты без проблем удаляются сборщиком мусора. В то время, как неуправляемые объекты необходимо освобождать вручную.

В C# есть два освобождения ресурсов: через деструктор или через метод Dispose, который определен в интерфейсе IDisposable.

Деструктор вызывается автоматически во время удаления объекта сборщиком мусора, но момент его вызова определить невозможно, так как сборщик мусора запускается только при недостатке памяти. Таким образом, объекты могут находиться в памяти вплоть до завершения программы.

Метод Dispose вызывается программистом (использующим этот класс), когда объект больше не нужен. При этом подходе происходит немедленное освобождение ресурсов. Минус подхода - программист может попросту забыть вызвать метод Dispose.

В вашем коде приведен беспроигрышный вариант: в методе f происходит освобождение управляемых и неуправляемых ресурсов.

Код прокомментировал ниже. Параметр dd необходим, чтобы не освобождать управляемые ресурсы при вызове деструктора, так на момент его вызова мы не можем быть уверенными в их состоянии, что они до сих пор находятся в памяти.

namespace ConsoleApp17

{

   public class A : IDisposable // Объявление класса, реализующего интерфейс IDisposable

   {

       private bool disposed = false; // Объект уничтожен?

       public void Dispose()

       {

           GC.SuppressFinalize(this); // Запрещаем сборщику мусора вызывать деструктор при удалении объекта

           f(true); // Вызываем метод освобождения неуправляемых и управляемых ресурсов

           Console.WriteLine(" Call dispose ");

       }

       private void f(bool dd)

       {

           if (!this.disposed) // Если объект не уничтожен, то уничтожаем

           {

               if (dd) // Если true, то освобождаем также управляемые ресурсы

                   Console.WriteLine("Dispose managed resourse. GC.collect()");

               // Освобождаем неуправляемые ресурсы

               Console.WriteLine("Clean up unmanaged resources");

           }

           disposed = true; // Помечаем, что объект уничтожен

       }

       ~A() // Деструктор

       {

           f(false); // Вызываем метод освобождения неуправляемых ресурсов

           Console.WriteLine("Call destruktor");

       }

   }

   class Program

   {

       static void Main(string[] args)

       {

           A ob = new A(); // Создание объекта

           ob.Dispose(); // Уничтожение объекта

       }

   }

}

MISAKOVNA49

Program pr;

uses crt;

Var a,k,k1:integer;

Begin

Writeln("Bведите а");

readin(a);

k1:=1;

k:=0

; While (a<>0) and (k1<1000) do

Вegin

if (a<0) and (a mod 2-0) and (abs (a)<-30000)

then k:%3Dk+1;

readln(a); end;

Writeln(k3},k);

readln;

end. 2) Program pr;

uses crt;

Var a,k,k1:integer;

Begin Writeln('Bведите а);

readln(a);

k1:=1

k:=0

While (a<>0) and (k1<1000) do

Begin if (a>0) and (a mod 24>0) and (abs(a)<-30000)

then k:1k+1;

k1:=k1+1

readln(a):

end

Writeln('k='k');

readin;

end

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Ариант 1. 1.Какие вирусы могут заразить следующие объектыс) файл иллюстрация.pptd) файл setup.exe2. Исправьте ошибки-Компьютерный вирус - это прикладная программа.Загрузочные вирусы заражают документы.Полифаги запоминают сведения о состоянии файлов и системных областей дисков​
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

AlidzhanovDenis491
bas7572513
KovalenkoIL
tatarinova-51
titancore
eeirikh
andrew-lev2501
tarhan1221
Svetlana
GoncharenkoKuzmin
denbelousov963
Sonyamaslo6
Zolotnik974620
ibarskova1542
antilopa001