GitHub Copilot for C# Developers: Setup, Techniques, Agents, and Honest Tradeoffs A developer published a detailed walkthrough of GitHub Copilot for C# developers, breaking the tool into its three distinct components: inline ghost-text suggestions, Copilot Chat, and the more autonomous Agent Mode. The post demonstrates context-shaping techniques such as writing descriptive comments before code and keeping related files open, and highlights Chat slash commands like /explain, /fix, and /tests while noting their limitations. GitHub Copilot gets mentioned constantly and explained properly rarely, most people know "it suggests code as you type" and stop there. This post covers it from the ground up, using the Product CRUD API from earlier posts as the working example, since that domain is already familiar and lets the focus stay entirely on Copilot itself rather than a new codebase. Copilot is an AI pair programmer built into your editor, trained on a large body of public code, that suggests code based on the context of what you're currently writing. It is not one single feature, it's actually three genuinely different tools sharing one name. Inline Suggestions show ghost text as you type, predicting the next line or few lines, press Tab to accept, Esc to dismiss. This is the original, most common form of Copilot. Copilot Chat is a separate side panel where you ask questions, request explanations of existing code, or ask it to generate something specific through conversation. Agent Mode is given a broader task rather than a single suggestion, and can plan, edit multiple files, and iterate somewhat autonomously toward completing that task, covered in depth further down. Think of autocomplete on a phone keyboard, but instead of predicting the next word, it predicts the next several lines of code, based not just on what you just typed, but on the surrounding context of your open files, function names, and comments. Once installed, ghost-text suggestions appear automatically as you type in any supported file type, including .cs files. Visual Studio's integration surfaces suggestions the same way - inline, as you type - with Chat available as a separate panel for conversational requests. Copilot's suggestions are only as good as the context it has to work with, specific techniques noticeably change what it suggests. // Writing a clear comment BEFORE the code - this // genuinely steers the next suggestion // validate that price is greater than zero and // stock quantity is non-negative public bool IsValid CreateProductDto dto { // Copilot's suggestion here is shaped directly // by the comment above - likely something close to: return dto.Price 0 && dto.StockQuantity = 0; } // Descriptive naming as a strong signal of intent // A vague name gives Copilot little to work with: public Task