| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > CSharp и подключение классов |
| Автор: DissDoc 16.10.2007, 19:35 |
| Ребята, я изучил много литературы, но не наткнулся на такой вот момент. Возможно что-то ушло от моего внимания. Вопрос вот какой У меня есть главнй класс, реализующий все MainClass.cs И есть например несколько других классов, расположенных в таком виде /MainClass.cs /StringClass.cs /api/TestClass.cs Как мне два последних файла подключить к классу своему. Как определить классы знаю. Я не могу физически подключить. (в java там import есть, в C/C++ include и т.д.) Может using... Но как тогда это все будет выглядеть.. Не откажите в помощи =) |
| Автор: thomas 16.10.2007, 19:38 | ||||
Указываешь NameSpace твоего класса StringClass.cs |
| Автор: stab 16.10.2007, 22:36 |
| DissDoc, если у тебя всё в одном namespace, то даже указывать ничего не надо. |
| Автор: a_n_d_y 17.10.2007, 08:14 |
| если эти классы в одном проекте, то не нужно никаких using-ов.. |
| Автор: tol05 17.10.2007, 09:03 | ||
неправда. Нужны using. Вообще CLR оперирует только полными (квалифицированными) именами типов и других - не понимает. Это единственный способ разрешения конфликта имен и это - принципиальная политика CLR. Просто для облегчения читаемости кода using применять рекомендуют. здесь наверное ситуация, когда файлы-то в одном проекте, просто намеспейсы у них - разные. Нужно все намеспейсы указать в using. Если везде намеспейс один и тот же, тогда достаточно его указать один раз: в оболочке объявления класса, использующего типы. Например так
|
| Автор: DissDoc 17.10.2007, 14:52 |
| ух сколько мелочей. Буду еще искать материалы ) Честно говоря стало еще больше только все запутанно =) namespace тот же я видел только в мануале по SDK Framework'а, а у меня в книге все описано без namespac'ов! Это принципиально? |
| Автор: tol05 17.10.2007, 14:57 |
| Вообще-то да... Если ты не указываешь намеспейс, то компилятор помещает его в глобальный намеспейс (Global::MyClass). Это не очень хорошо. Если у тебя MyClass описан в трех файлах как MyNamespace1.MyClass MyNamespace2.MyClass MyNamespace3.MyClass то это допустимо. Если намеспейсов нет, то ты требуешь чтобы компилятор скомпилировал твой код как Global::MyClass Global::MyClass Global::MyClass) что не есть гуд |