А что на практике оказывается?
Как я думаю - что всё нормально. Он считает пространство конструктора вложенным в пространство класса. И по идее работать должен. А на практике как? Нет под рукой C#
На практике оказывается что всё нормально, просто бессмысленный отлов эксепшна. Это всё равно что в Java написать int a = Integer.valueOf("5");
вместо int a = 5;
Валидный код