При выполнении серьезных операций принято запрашивать у пользователей их подтверждение.
А чем пользователи классов хуже? :)
public class AreYouSure
{
private readonly Action _yes;
public void Yes() { _yes(); }
public void No() { /*do nothing*/ }
public AreYouSure(Action yes) { this._yes = yes ?? (() => {}); }
}
***
public class LocalFile
{
private readonly string _filename;
public LocalFile(string filename) { this._filename = filename; }
public AreYouSure Delete() { return new AreYouSure(() => File.Delete(this._filename)); }
}
***
class Program
{
static void Main(string[] args)
{
LocalFile file = new LocalFile(@"c:test.txt");
AreYouSure confirmation = file.Delete();
confirmation.Yes();
}
}
P.S. Запостить в «Кодобред» не смог, поэтому публикую тут.