一串对于C#in方法
我想要一些像tkis“int?”的东西,但是对于字符串。你们知道,若我不给参数提供数据,我就不会出错。我需要一些解决这个问题的办法一串对于C#in方法,c#,C#,我想要一些像tkis“int?”的东西,但是对于字符串。你们知道,若我不给参数提供数据,我就不会出错。我需要一些解决这个问题的办法 Example(4); public void Example(int, string?){} 我给你们所有人打分。谢谢你的帮助。主题[closed]:)在C#4.0中,您可以通过编写 public void Example (int a, string b = null) {} 否则,您可以重载该方法 public void Example (int a)
Example(4);
public void Example(int, string?){}
我给你们所有人打分。谢谢你的帮助。主题[closed]:)在C#4.0中,您可以通过编写
public void Example (int a, string b = null) {}
否则,您可以重载该方法
public void Example (int a) {}
public void Example (int a, string b) {}
字符串类型默认为null,并且不需要使其为null,因为它已经是引用类型。你可以这样使用它
public void Example(int i, string s)
{
}
用null调用它将是
Example(null, null);
这不可用,因为
string
已经是引用类型,因此可以为空。?
后缀是语法上的糖,因此int?
相当于Nullable
。。。而Nullable
具有的约束,其中T:struct
,即T
必须是不可为null的值类型。。。它不包括字符串
换句话说,你可以直接写
public void Example(int x, string y)
{
if (y == null)
{
...
}
}
请注意,这与将其作为可选参数不同。传入null
值仍在传入值。如果要将其作为可选参数,也可以这样做:
public void Example(int x, string y = "Fred")
...
Example(10); // Equivalent to Example(10, "Fred");
System.String是一种引用类型,因此您可以将字符串变量赋值为null,而无需声明该变量为null。是否需要为字符串参数指定默认值 e、 g
字符串默认为空,这就是为什么不需要
String?
。Jon在您的示例中,如果(x==null),您也可以编写,但需要警告:)
Example(4);
public void Example(int x, string y = null)
{
// etc
}