Sobes.tech
Junior — Middle

Puteți oferi un exemplu când a fost efectuat un rollback sau o anulare a unei acțiuni anterioare într-un program sau sistem?

sobes.tech AI

Răspuns de la AI

Un exemplu de anulare a unei acțiuni într-un program C# este utilizarea pattern-ului "Comandă" cu suport pentru anulare (undo). De exemplu, într-un editor de text:

public interface ICommand
{
    void Execute();
    void Undo();
}

public class InsertTextCommand : ICommand
{
    private StringBuilder _text;
    private string _insertedText;
    private int _position;

    public InsertTextCommand(StringBuilder text, string insertedText, int position)
    {
        _text = text;
        _insertedText = insertedText;
        _position = position;
    }

    public void Execute()
    {
        _text.Insert(_position, _insertedText);
    }

    public void Undo()
    {
        _text.Remove(_position, _insertedText.Length);
    }
}

Aici, metoda Undo anulează acțiunea de inserare a textului, restaurând starea înainte de executarea comenzii. Această abordare este frecvent utilizată pentru implementarea funcției de anulare în aplicații și sisteme.