一串对于C#in方法

一串对于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)

我想要一些像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) {}
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
}