By reading the comments with the actual C# code removed,

able to get a good idea of a program’s intention. If you cannot, you aren’t

By reading the comments with the actual C# code removed, you should be able to get a good idea of a program’s intention. If you cannot, you aren’t commenting properly. (Conversely, if you can’t strip out most comments and still understand the intention from the function names, you aren’t naming your functions clearly enough and/or making them small enough.)