Looking for c# Keywords? Try Ask4Keywords

C# Language Необязательные аргументы


пример

Рассмотрим предыдущее - это определение функции с необязательными аргументами.

private static double FindAreaWithOptional(int length, int width=56)
       {
           try
           {
               return (length * width);
           }
           catch (Exception)
           {
               throw new NotImplementedException();
           }
       }

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

введите описание изображения здесь

Console.WriteLine("Area with Optional Argument : ");
area = FindAreaWithOptional(120);
Console.WriteLine(area);
Console.Read();

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

введите описание изображения здесь

Использование дополнительного атрибута.

Другим способом реализации необязательного аргумента является использование ключевого слова [Optional] . Если вы не передадите значение для необязательного аргумента, этому аргументу присваивается значение по умолчанию этого типа данных. Ключевое слово Optional присутствует в пространстве имен Runtime.InteropServices.

using System.Runtime.InteropServices;  
private static double FindAreaWithOptional(int length, [Optional]int width)
   {
       try
       {
           return (length * width);
       }
       catch (Exception)
       {
           throw new NotImplementedException();
       }
   } 

area = FindAreaWithOptional(120);  //area=0

И когда мы вызываем функцию, мы получаем 0, потому что второй аргумент не передается, а значение по умолчанию для int равно 0, и поэтому произведение равно 0.