Заставка

Программирование на старых и современных языках, а так-же дизайн

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование на старых и современных языках, а так-же дизайн » C# » Именованные параметры/аргументы C#


Именованные параметры/аргументы C#

Сообщений 1 страница 3 из 3

1

Когда изучал Python, оттуда узнал про именованные параметры/аргументы, вот небольшой пример:

Код:
using System;
        	
public class Program
{
    public static void named_param_say(String none, String name, int age)
   {
        Console.WriteLine($"Привет {name}, вам {age} лет.");
   }
	
   public static void Main()
   {
        Program.named_param_say("aaa", name:"lexx821", age:39);
        Program.named_param_say("aaa", age:40, name:"Антон Попов");
   }
}

Результат:

Код:
Привет lexx821, вам 39 лет.
Привет Антон Попов, вам 40 лет.

0

2

Если написать так:

Код:
using System;
        	
public class Program
{
    public static void named_param_say(String none, String name, int age) 
    {
        Console.WriteLine($"Привет {name}, вам {age} лет.");
    }
	
    public static void Main()
    {
        Program.named_param_say(name:"lexx821", age:39);
        Program.named_param_say(age:40, name:"Антон Попов");
    }
}

То выдаст ошибку:

Код:
Compilation error (line 11, col 11): There is no argument given that corresponds to the required formal parameter 'none' of 'Program.named_param_say(string, string, int)'
Compilation error (line 12, col 11): There is no argument given that corresponds to the required formal parameter 'none' of 'Program.named_param_say(string, string, int)'

Это можно решить, если написать так:

Код:
public static void named_param_say(String none="", String name="", int age=0) 
{
    Console.WriteLine($"Привет {name}, вам {age} лет.");
}
Код:
public static void Main()
{
    Program.named_param_say(name:"lexx821", age:39);
    Program.named_param_say(age:40, name:"Антон Попов");
}

Результат:

Код:
Привет lexx821, вам 39 лет.
Привет Антон Попов, вам 40 лет.

0

3

Если написать так:

Код:
using System;
        	
public class Program
{
public static void named_param_say(String none="", String name="", int age=0) 
{
    Console.WriteLine($"Привет {name}, вам {age} лет, и что-то типа {none}.");
}
	
    public static void Main()
    {
        Program.named_param_say("aa", name:"lexx821", age:39);
        Program.named_param_say(age:40, name:"Антон Попов", none:"bb");
    }
}

То результат такой:

Код:
Привет lexx821, вам 39 лет, и что-то типа aa.
Привет Антон Попов, вам 40 лет, и что-то типа bb.

0


Вы здесь » Программирование на старых и современных языках, а так-же дизайн » C# » Именованные параметры/аргументы C#