Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .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
Цитата

Может using..
 smile 
Код

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using MyNameSpace;

Указываешь 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
Цитата(a_n_d_y @  17.10.2007,  08:14 Найти цитируемый пост)
если эти классы в одном проекте, то не нужно никаких using-ов.. 

неправда. Нужны using.
Вообще CLR оперирует только полными (квалифицированными) именами типов и других - не понимает. 
Это единственный способ разрешения конфликта имен и это - принципиальная политика CLR.
Просто для облегчения читаемости кода using применять рекомендуют.

здесь наверное ситуация, когда файлы-то в одном проекте, просто намеспейсы у них - разные. Нужно все намеспейсы указать в using. Если везде намеспейс один и тот же, тогда достаточно его указать один раз: в оболочке объявления класса, использующего типы. Например так
Код

namespace ConsoleApplication1
{
    class Program
    {
              ...
         }
}

Автор: DissDoc 17.10.2007, 14:52
ух сколько мелочей. Буду еще искать материалы )
Честно говоря стало еще больше только все запутанно =)

namespace тот же я видел только в мануале по SDK Framework'а, а у меня в книге все описано без namespac'ов! Это принципиально?

Автор: tol05 17.10.2007, 14:57
Вообще-то да...  smile 

Если ты не указываешь намеспейс, то компилятор помещает его в глобальный намеспейс (Global::MyClass). Это не очень хорошо. 

Если у тебя MyClass описан в трех файлах как 
MyNamespace1.MyClass
MyNamespace2.MyClass
MyNamespace3.MyClass
то это допустимо.

Если намеспейсов нет, то ты требуешь чтобы компилятор скомпилировал твой код как
Global::MyClass
Global::MyClass
Global::MyClass)

что не есть гуд

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)