Start here. This is the direct spoken answer to practice first.
Why this question matters
These three methods look similar in Program.cs, but they create different control flow. Understanding that flow makes middleware-order bugs much easier to predict.
Use adds middleware that can perform work before and after the next component. It receives a next delegate and continues the pipeline by awaiting it; if it does not call next, it short-circuits the request. Run adds a terminal delegate with no next component, so it produces or completes the response for requests that reach it. Map creates a branch selected by a request-path prefix and runs a separate pipeline for that branch. The request moves forward through middleware until an endpoint or terminal component handles it, then control unwinds back through middleware that awaited next. Order therefore affects both inbound work, such as authentication, and outbound work, such as logging duration or adding headers before the response starts.