среда, 12 января 2011 г.

Создание и использование встроенных C# методов (2)

В предыдущем примере, мы создали встроенную C# функцию, которая возвращает текущую дату как строку в полном формате (long date).

Давайте теперь, немного усложним пример и заодно рассмотрим использование другого шаблона для создания встроенных C# функций - метод с параметрами.

Сейчас мы создадим функцию, которая будет возвращать дату либо в полном формате (long date), либо в сокращенном формате (short date). По умолчанию - это будет полный формат, однако пользователь функции сможет выбирать формат благодаря входному параметру функции.



Для начала создадим заготовку функции, выбирая на этот раз шаблон "метод с параметрами":
  1. Заходим в админку в раздел Functions и добавляем встроенную C# функцию (C# functions | Add Inline C# Function).
  2. В появившемся окне заполняем поля:
    • Name: CurrentDate2
    • NamespaceDemo
    • Description: "Возвращает текущую дату в длинном или коротком формате"
    • TemplateMethod with parameters.
  3. Нажимаем Finish.
Метод будет иметь вид:


public static bool CurrentDate2(int myIntValue, string myStringValue)
{
  return true;
}

Входные параметры

Обратите внимание на два параметра, созданных по умолчанию: myIntValuemyStringValue. А теперь переключитесь на вкладку Input parameters (Входные параметры). Это очень важный момент.

Важно! Входные параметры метода на вкладке Source, должны совпадать по названию и типу с параметрами, добавленными на вкладке Input parameters.

С1 сам добавил параметры и там, и там. Для нашего примера именно такие параметры не нужны. Нам нужен параметр логического типа (Boolean). Именно его мы сейчас и создадим.
  1. На вкладке Source, заменяем int myIntValue, string myStringValue на bool LongDate.
  2. На вкладке Input parameters, удаляем эти же два параметра и добавляем свой логический LongDate:
    1. Выбираем по очереди параметры и нажимаем Delete.
    2. Нажимаем Add New.
    3. В редакторе параметра (справа) заполняем указанные ниже поля:
  • Parameter name (имя параметра): Вводим LongDate
  • Label (надпись): Вводим Long Date (здесь можно поставить пробел)
  • Help (справка): Необязательное, но полезное - Вводим "При выборе, выводит дату в полном формате, иначе - в сокращенном
  • Parameter type (тип параметра): Выбираем Boolean.
Можно сохранить промежуточный результат нашей работы (Save).

Значение параметра по умолчанию

Теперь настроим значение входного параметра по умолчанию:
  1. В редакторе параметра щелкаем поле Default value.
  2. В открывшемся окне (Parameter Default Value), нажимаем Add New.
  3. В окне выбора функции, раскрываем по очереди All functions | Composite | Constants, выбираем Boolean и нажимаем OK.
  4. Опять в окне Parameter Default Value, в добавленной функции выбираем параметр Value.
  5. В его Parameter value, выбираем True и нажимаем OK.
Итак, нужный нам параметр мы добавили, значение по умолчанию задали. Осталось немножко подправить код нашего метода.

Возвращаемое значение

Как и в примере без параметра:
  1. На вкладке Source, заменяем тип возвращаемого значения с bool на string.
  2. Заменяем строку return true; на return LongDate?DateTime.Now.ToLongDateString():DateTime.Now.ToShortDateString();.
  3. Сохраняем функцию (Save).
У нас должно получится:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
using Composite.Data;
using Composite.Data.Types;


namespace Demo
{
  public static class InlineMethodFunction
  {
    public static string CurrentDate2(bool LongDate)
    {
      return LongDate?DateTime.Now.ToLongDateString():DateTime.Now.ToShortDateString();
    }
  }
}

Используем только что созданную встроенную C# функцию точно также как и внешнюю C# функцию. При добавлении функции будет использоваться значение по умолчанию - полный формат ("Wednesday, January 12, 2011"). Однако можно будет также выбрать параметр Long Date в окне свойств функции (Function Properties) и убрать птичку", чтобы дата выводилась в сокращенном формате ("1/12/2011").

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

Отправить комментарий