(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Необязательные параметры и именованные аргументы в C#4

Источник: msug

Это семнадцатая статья из серии, которая посвящена выходу VS 2010 и .NET 4.

Сегодняшний пост затронет тему новых возможностей языка, добавленных в C# 4.0 - необязательные параметры и именованные аргументы, а еще крутой способ использования необязательных параметров в ASP.NET MVC 2.

Необязательные параметры

C# 4.0 поддерживает необязательные параметры в методах, конструкторах и индексаторах (VB умел такое уже давным-давно).

Параметры являются необязательными, когда присутствует в объявлении значение по умолчанию. Например, ниже представлен метод, который принимает два параметра: строковый параметр "category" и целочисленный "pageIndex". Параметр "pageIndex" имеет значение по умолчанию равное 0 и поэтому является необязательным параметром:

image

Когда вызываете выше приведенный метод, то мы можем передать явно два параметра:

image

Или же опустить второй необязательный параметр, в данном случае будет передано значение по умолчанию 0:

image

Обратите внимание, IntelliSense в VS 2010 указывает, что параметр является необязательным, а также его значение по умолчанию:

image

Именованные аргументы и необязательные параметры в C# 4.0

C# 4.0 также поддерживает концепцию именованных параметров. Что позволяет явно указывать имя передаваемого в метод параметра, вместо идентификации его по положению.

Например, я могу написать код, как показано ниже, явно определяя второй аргумент в метод GetProductsByCategory по имени:

image

Именованные аргументы достаточно удобны, когда метод поддерживает несколько необязательным параметров и вы хотите явно указать, какие аргументы передать. Например, ниже, у нас есть метод DoSomething , которые принимает два необязательных параметра:

image

Мы можем использовать именованные аргументы для вызова метода любым перечисленным способом:

image

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

ASP.NET MVC 2 и необязательные параметры

Давайте рассмотрим один интересный сценарий, когда мы можем использовать необязательные параметры в ASP.NET MVC 2 связи с методами действий в классах контроллерах.

Например, мы хотим привязать такие URL-адреса, как "Products/Browse/Beverages" или "Products/Browse/Deserts" к методу действия контроллера. Мы можем реализовать это написав URL-маршрутизатор, который связывает URL-адреса с методом:

image

Мы можем и использовать значение необязательного параметра строки запроса "page", а можем и проигнорировать его, для отображения результата метода Browse, которое выводит результат по страницам. Например, /Products/Browse/Beverages?page=2.

В ASP.NET MVC 1 вы, как обычно, обрабатывали данный сценарий добавив в метод действия параметр "page" и установив ему значение null (если параметр "page" не будет присутствовать в строке запроса, то будет передан null). Далее вы можете написать код, конвертирующий null в int и присвоить его значению по умолчанию, если не был передан в строку запроса:

image

C ASP.NET MVC 2 вы можете использовать необязательные параметры, поддерживаемые в VB и C#для более короткой и четкой реализации. Достаточно объявить параметр метода действия, как необязательный с значением по умолчанию:

C#

image

VB

image

Если значение "page" присутствует в строке запроса (/Products/Browse/Beverages?page=22), тогда оно будет передано в метод действия, как целое число. Если же значение "page" отсутствует в строке запроса (/Products/Browse/Beverages), тогда в метод действия будет передано значение по умолчанию, равное 0. Что делает код немного более сжатым и читабельным.

Итоги

Появилось довольно много новых возможностей в C# и VB. Вышеописанные две всего лишь малая часть из них.

Если вы ищете хорошую книжку, которая содержит описание всех новых возможностей в C# (включая C# 4.0), а также описание основный библиотек .NET классов, то почитайте недавно вышедшую книгу O"Reilly" C# 4.0 in a Nutshell

image

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 05.04.2010 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
Microsoft Office 365 для Дома 32-bit/x64. 5 ПК/Mac + 5 Планшетов + 5 Телефонов. Подписка на 1 год.
Microsoft Windows Professional 10, Электронный ключ
Microsoft 365 Business Basic (corporate)
Microsoft 365 Business Standard (corporate)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Компьютерная библиотека: книги, статьи, полезные ссылки
Проект mic-hard - все об XP - новости, статьи, советы
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100