что значит ссылаться на сборку следующим образом

#c#

#c#

Вопрос:

 assemblyname.assemblyname myobj = new assemblyname.assemblyname()
  

Я видел, что сборки используются таким образом, почему?

поскольку я видел, что он также используется как таковой

 assemblyname myobj = new assemblyname()
  

пример кода как таковой

 Using CreateUsers;

CreateUsers.CreateUsers userCreation= new CreateUsers.CreateUsers();
  

Ответ №1:

Я думаю, что вы путаете имя пространства имен с именем сборки. Обычно пространство имен верхнего уровня также является именем сборки.

Ответ №2:

Вы имеете в виду пространство имен, а не имя сборки — это совершенно разные вещи.

Я объясню на примере.

Когда у вас есть using System.IO; поверх кода, вы можете иметь StreamReader reader = new StreamReader("path here"); вместо System.IO.StreamReader reader = new System.IO.StreamReader("path here"); , поскольку пространство имен System.IO уже «известно» компилятору.

Вы все равно можете иметь полную ссылку (например, System.IO.StreamReader ) даже при включении пространства имен, это не выдаст никакой ошибки и может быть полезно для удобства чтения, а иногда требуется при возникновении конфликта, то есть вы включаете два пространства имен, оба содержат класс с одинаковым именем.

Ответ №3:

Первый код явно указывает пространство имен класса, а второй — нет. Второй код требует дополнительной using assemblyname; директивы в верхней части файла.

Комментарии:

1. Дэниел, в примере кода, который я пытаюсь понять, они используют assemblyname поверх файла и все еще используют assemblyname.assemblyname myobj = new assemblyname.assemblyname() . отсюда путаница.

2. Тогда это просто избыточно. Но это тоже не повредит.

3. oki. Итак, если бы я получил новую сборку сборки от разработчика и добавил ее в свой каталог bin, мой код должен был бы нормально скомпилироваться, что касается инициализации?

4. Пока он не изменит свои пространства имен, проблем не будет.

5. он дал мне новую сборку assembly без изменения пространства имен, но способ, которым его код ссылается на его сборку, больше не работает … может быть, открыть новый post / thread

Ответ №4:

Это не может быть реальным именем сборки. Это было пространство имен.