Challenge 3: An Extension Method Cannot Reach a Private Field — Possible Solution ==================================================================== BankAccount.cs: public class BankAccount { private decimal _balance = 100m; } Broken attempt — BankAccountExtensions.cs: public static class BankAccountExtensions { public static decimal GetBalanceDirectly(this BankAccount account) { return account._balance; // attempting to read a private field } } Representative compile error: BankAccountExtensions.cs(5,24): error CS0122: 'BankAccount._balance' is inaccessible due to its protection level Explanation: Even though GetBalanceDirectly() is written with the this modifier and is called with ordinary dot-syntax exactly like a real instance method, it is NOT actually a member of BankAccount at all -- it's a completely separate static method that merely happens to receive a BankAccount as its first argument. Because it lives outside BankAccount entirely, it is bound by the exact same access rules any other outside code would be: _balance is private, so only code written INSIDE the BankAccount class itself can read it. A genuine instance method defined inside BankAccount would have no such restriction. WHY THIS WORKS AS AN ANSWER ------------------------------ This reproduces the exact private-member-access failure the chapter's own limitation section describes, with the CS0122 error confirming extension methods are bound by ordinary external access rules despite their instance-method-like call syntax.