c#语法忽略参数,询问可能性
本文关键字:可能性 参数 语法 | 更新日期: 2023-09-27 17:50:23
public static void Search(string name, int age = 21, string city = "Tehran")
{
MessageBox.Show(String.Format("Name = {0} - Age = {1} - City = {2}",
name, age, city));
}
我想使用名称和城市参数调用Search方法,以保持age的默认值。
AFAIK参数应该通过名称
来引用Search("Mahdi", city: "Mashhad");
我想知道是否可以在不指定年龄值的情况下拨打电话,也不按姓名拨打城市?我指的是跳过一个参数,比如:
或
Search("Mahdi",,"Mashhad");
我在for
loop
for (int i = 0; ; i++) { some code; }
或任何其他匹配大小写的语法?
简单地创建一个重载,它接受如下两个字符串参数:
public static void Search(string name, string city)
{
Search(name, 21, city);
}
public static void Search(string name, int age = 21, string city = "Tehran")
{
MessageBox.Show(String.Format("Name = {0} - Age = {1} - City = {2}",
name, age, city));
}
然后这样命名:
Search("Mahdi", "Mashhad");
改为
public static void Search(string name, string city = "Tehran", int age = 21)
{
MessageBox.Show(String.Format("Name = {0} - Age = {1} - City = {2}",
name, age, city));
}
现在你可以使用
Search("Mahdi", "Mashhad");
可选参数定义在参数列表的末尾,在任何必需的参数之后。http://msdn.microsoft.com/en-us/library/dd264739.aspx
您可以为age
使用可空整型。这样的:
public static void Search(string name, int? age = null, string city = null)
{
MessageBox.Show(String.Format("Name = {0} - Age = {1} - City = {2}",
name, age ?? 21, city ?? "Tehran"));
}
那么你可以调用以下组合:
Search("Mahdi");
Search("Mahdi", 20);
Search("Mahdi", null, "Cairo");
将使用age=21
和city="Tehran"
作为默认值