私が何度も行ったり来たりして気づいたことの 1 つは、using ステートメントを C# コード ファイルのどこに配置する必要があるかということです。using ステートメントの場所がそのファイル内の参照の範囲に影響することは理解していますが、理解できないのは、ほとんどの場合、名前空間内で using ステートメントが必要になる理由です。
ほとんどの場合、1 つのファイルに 1 つの名前空間宣言しか存在しないため、using ステートメントのスコープは役に立たないように見えます。複数のタイプと複数の名前空間を同じファイルに配置し、スコープを使用してステートメントを使用することは完全に理にかなっていますが、1 つの名前空間を持つファイルであっても、これが行われるケースはまだたくさんあります。なんで?
using System;
namespace MyNamespace
{
using System.Text;
public class MyClass {
// ...
}
}
これがプロジェクト全体で不必要に行われている例としては、ASP.NET MVC ソースがあります。