Пространство имен C# и соглашения о присвоении имен класса/подкласса, когда главное пространство имен содержит базовый класс и внутренние пространства имен, содержат подклассы

Распространено перенестись, строки в 72 (80 также распространено, но это означает, что перейдет 80 при заключении в кавычки) обработать по крайней мере один или два уровня цитаты. Существует "писать сообщение/течь" тип MIME, что означает, что клиент перенесет сам текст на границах окна, но не, что многие клиенты поддерживают его. Просто установите своего редактора для обертывания в 72, и Вы будете в безопасности и читаемы большинством людей.

РЕДАКТИРОВАНИЕ: точный тип text/plain с добавлением format=flowed как это:

Content-Type: text/plain; format=flowed

См. rfc2646 для объяснений.

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

альтернатива HTML является "писать сообщение/обогащать" типом MIME, который дает Вам большинство преимуществ писем HTML w/o стычка, но снова, не может поддерживаться везде.

Видят здесь для, пишут сообщение/обогащают.

8
задан Cœur 6 August 2017 в 16:45
поделиться

2 ответа

Обычно пространства имен имеют множественное число, чтобы не конфликтовать с именами классов (например, вероятно, вам понадобятся классы с именами Автомобиль и Автомобиль ), поэтому Я был бы склонен использовать пространства имен следующим образом:

namespace Vehicles;
namespace Vehicles.Cars;
namespace Vehicles.Trucks;

Что касается имен классов, было бы типичным префиксом имени класса со специализацией, особенно если они, вероятно, будут использоваться вместе, так что в конечном итоге вы получите с чем-то вроде:

class CarWheel : Wheel
class TruckWheel : Wheel

Этот тип «избыточности» можно увидеть повсюду в .NET Framework, например в пространстве имен System.Xml , практически все классы имеют префикс Xml или в пространстве имен System.Data.SqlClient большинство классов имеют префикс Sql .Это означает, что вы можете импортировать пространства имен с помощью директивы using и тогда вам не придется полностью указывать имена классов во всем коде, например, что из следующего более читабельно?

Vehicles.Cars.Wheel wheel = new Vehicles.Cars.Wheel();

или

CarWheel wheel = new CarWheel();

Очевидно, что оба работают, но второй значительно короче.


Обратите внимание, что если вы включите специализацию в имя, вы можете обнаружить, что вам не нужны все вложенные пространства имен ( .Cars , . Грузовики и т. Д.), Которые могут стать болезненными, если они обычно используются вместе, и поэтому каждый файл, использующий их, должен будет импортировать все пространства имен, например

using Vehicles;
using Vehicles.Cars;
using Vehicles.Trucks;
using Vehicles.SomethingElse;
using Vehicles.YetAnotherThing;

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

20
ответ дан 5 December 2019 в 06:54
поделиться

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

Вам действительно нужно пространство имен для Автомобиль , Грузовик и т. д.? Все эти пространства имен больше похожи на классы , чем на пространства имен. Возможно, в вашей реальной ситуации это имеет больше смысла ...

4
ответ дан 5 December 2019 в 06:54
поделиться
Другие вопросы по тегам:

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