public abstract record WebEvent()
public record PageLoad() : WebEvent;
public record PageUnload() : WebEvent;
public record KeyPress(char key) : WebEvent;
public record Paste(string text) : WebEvent;
public record Click(int x, int y) : WebEvent;
public static class Program
public static void Main()
HandleEvent(new WebEvent.Click(120, 40));
HandleEvent(new WebEvent.Paste("Hello World"));
public static void HandleEvent(WebEvent e)
WebEvent.PageLoad => "Page Loaded",
WebEvent.PageUnload => "Page Unloaded",
WebEvent.KeyPress(char key) => $"{key} key pressed",
WebEvent.Paste(string text) => $"{text} pasted",
WebEvent.Click(int x, int y) => $"Mouse clicked coordinate ({x}, {y})",
Console.WriteLine(result);