次のクラスを作成しました。
using System.Windows;
using System.Windows.Input;
using MyUtils.MyArgParser;
namespace MyUtils.MyImplement
{
public static class ImplementExitOnEscape
{
#region ImplementExitOnEscape
public static void Implement(Window window)
{
window.KeyDown += Window_KeyDown;
}
private static void Window_KeyDown(object sender, KeyEventArgs e)
{
var window = sender as Window;
// Close window when pressing the escape key.
if (e.Key == Key.Escape) if (window != null) window.Close();
var optionX = MyArgParser.MyArgParser.GetOptionValue("optionX");
}
#endregion //ImplementExitOnEscape
}
}
ではなく、MyArgParser
クラスの完全な名前空間を使用する必要があるのはなぜですか?var optionX = MyArgParser.MyArgParser.GetOptionValue("optionX");
MyArgParser.GetOptionValue("optionX");
using MyUtils.MyArgParser;
無視されます。そこにあってもなくても違いはありませんが、コンパイラは依然として完全な名前空間を使用するように強制します。
どこでも起こっているわけではないので、これは奇妙だと思います。たとえば、アプリケーションのエントリ ポイントが定義されているファイルで完全な名前空間を使用する必要はありません。