Вопрос по java, c# – Как заставить пространство имен C # работать как пакеты Java, чтобы они автоматически переименовывались при их перемещении?

3

Я пришел с Java и вижу, что пакет на Java очень удобен. Когда вы перемещаете класс в другой пакет, он автоматически изменит пакет. (конечно, с помощью IDE, такой как Eclipse или Netbean)

Но C # использует пространство имен, и мое пространство имен не переименовывается автоматически, как в Java. Например, у меня есть файл, пространство имен которогоcom.app и я положил его вcom.app, но позже я перенесу этот файл вcom.lib папка и ее пространство имен по-прежнемуcom.app, Таким образом, мне трудно управлять этим, потому что я перемещаю его вручную.

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

@ jmort253 Извините, если мой английский плохой. но потому что язык решает, как работает IDE. потому что пакет является физическим (то есть он создает папку в проекте), а пространство имен является виртуальным (он ничего не делает на вашем компьютере), поэтому IDE будет работать так, как они решат. И мой вопрос означает: можем ли мы заставить трюк заставить VS Studio работать, как я говорю !!! hqt
@hqt - я отредактировал твой вопрос так, чтобы он был менее напыщенным и добавил +1. Я думаю, что это хороший вопрос. Если вы считаете, что значение вашего вопроса было утеряно, откатывайтесь. jmort253
На самом деле, нет. Голосование здесь полностью анонимно. С учетом сказанного, я думаю, что обратная связь важна. Наиболее вероятная причина такого отрицательного мнения заключается в том, что вы не поняли, в какой IDE вы используете. Ваш вопрос также звучит как напыщенная речь вместо объективного вопроса. Если вы отредактируете напыщенную речь (то есть скажете, что думаете, что C # неудобен, когда ясно, что вы только изучаете ее и не знаете, о чем говорите), тогда вы можете избежать отрицательных голосов. Другими словами, держите подальше ваши мнения и предубеждения. Удачи! jmort253
Часто вstackoverflow сообщество, есть много отрицательных голосов без причины !!! Я не могу себе представить, что они могут замолчать и ничего не сказать :)) может, они умны и думают, что другие вопросы глупы, но им все равно нужно что-то сказать;) hqt
Некоторым людям могут также не нравиться теги java / package, когда речь идет о c #, но моим главным предположением будет разглагольствование. TheEvilPenguin

Ваш Ответ

1   ответ
6

Resharper, (Средиmany, many полезные функции) он выделяет, когда пространство имен неверно (на основе иерархии папок и корневого пространства имен сборки), и может исправить это за вас.

Обратите внимание, что в отличие от Java, иногда существуют веские причины для того, чтобы класс находился в пространстве именother чем тот, который определяется структурой каталогов. Хорошим примером могут быть классы методов расширения, которые должны находиться в области видимости в классе, который их вызывает. Поэтому обычно иметь:

/myProject
  /extensions
     /MyExtensionMethodClass.cs

с пространством имен, какmyProject (чтобы методы расширения могли использоваться где угодно в myProject без директивы using)

Спасибо за вашу помощь :) hqt
@JasonSturges Я бы не знал - это настолько полезно, что я прекратил писать без него.
Visual Studio 2010 имеет множество функций рефакторинга, ранее доступных только через Resharper.
Ой. Это означает, что Resharper сделает пространство имен похожим на папку, в которой он находится? hqt
Он помечает объявление пространства имен в файле, если оно не соответствует иерархии папок, и вы можете исправить это за вас (обычно есть сочетание клавиш для вызова действий Resharpers). Как сказал Крис Шейн, есть случаи, когда вы определенно не хотите, чтобы пространства имен совпадали с папками (если вы используете папки для группировки файлов, даже если они принадлежат одному пространству имен)

Похожие вопросы