Куда я должен поместить разные функции в проект.NET?

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

6
задан 24 September 2009 в 14:50
поделиться

11 ответов

Да, для этого обычно используются статические вспомогательные классы.

Кроме того, в C # 3 вы можете объявить метод следующим образом:

public static string RemoveFirstLine(this string s) {
    ...
}

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

18
ответ дан 8 December 2019 в 02:04
поделиться

В этом случае можно использовать расширения. Он буквально добавляет вашу функцию к возникновению. Только вот в 2008 году статический метод сделать нельзя.

0
ответ дан 8 December 2019 в 02:04
поделиться

Будьте осторожны!

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

  • Объекты расширения должны находиться в своем собственном пространстве имен.

  • Служебные функции, которые применяются к заданному набору бизнес-объектов или методов, должны находиться в пространстве имен этих объектов. Часто с суффиксом Helper, например BusinessObjectHelper. Здесь важно именование . Вы создаете контейнер для разных методов, или было бы разумнее сгруппировать их в специализированные объекты, например, парсер?

6
ответ дан 8 December 2019 в 02:04
поделиться

Я не думаю, что для этого есть стандарт. Я обычно делаю статический класс под названием BlahUtil. Для вашего примера я бы сделал его статическим методом на StringUtil . Это помогает мне сгруппировать связанные методы в разумные единицы, облегчая их обнаружение и совместное использование между командами.

Затем вы также можете выбрать, какие из этих методов будут доступны как методы расширения (начиная с C # 3.0):

public static class StringUtil
{
    public static string RemoveFirstLine(this string multiLineString)
    {
        // ...
    }
}
4
ответ дан 8 December 2019 в 02:04
поделиться

Обычно я создаю статический класс Helper или Utility, а затем помещаю туда соответствующие вспомогательные функции.

Кроме того, я стараюсь логически сгруппировать классы Helper и Utility - помещая функции анализа текста наряду с функциями преобразования объектов бессмысленна. Путаница устраняется с помощью классов TextUtils и ConversionUtils.

20
ответ дан 8 December 2019 в 02:04
поделиться

Если вы используете C # 3.0, вы можете захотеть рассмотрите возможность использования метода расширения!

public static class StringExtensions
{
    public static string RemoveFirstLine(this string myString)
    {
         return myString.Remove("line..!");
    }
}

Затем в коде вы можете сделать это:

string myString = "Hello World etc";

string removedLineString = myString.RemoveFirstLine();
3
ответ дан 8 December 2019 в 02:04
поделиться

Обычно я создаю класс Utilities и определяю статические вспомогательные методы.

2
ответ дан 8 December 2019 в 02:04
поделиться

Я сделал статические «вспомогательные» классы, но после некоторого анализа; этот тип вспомогательной функции всегда заканчивается реализацией отдельного класса. В вашем случае у вас будет класс «базового парсера текста» и производный класс, который переопределяет метод «синтаксического анализа».

1
ответ дан 8 December 2019 в 02:04
поделиться

Я бы создал статический рабочий класс для таких функций. Может быть, не лучший способ, но тот, который упрощает жизнь ...;)

K

0
ответ дан 8 December 2019 в 02:04
поделиться

Используйте метод расширения для строки. Вот для чего они нужны.

0
ответ дан 8 December 2019 в 02:04
поделиться

Вы можете использовать класс со статическими методами. Что-то вроде ParserUtils.RemoveFirstLine (). В .NET 3.5 и выше вы иногда можете использовать методы расширения, когда ваши служебные функции связаны с классом, который вы не можете изменить, например класс String. Intellisense покажет метод расширения для любого строкового объекта в проекте.

0
ответ дан 8 December 2019 в 02:04
поделиться
Другие вопросы по тегам:

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