我想要像 tkis "int?" 这样的东西。但对于字符串。你知道,如果我不给参数提供数据,我就不会出错。我需要一些想法来解决这个问题。
Example(4);
public void Example(int, string?){}
对于你们所有人,我给分。感谢帮助。主题[关闭] :)
我想要像 tkis "int?" 这样的东西。但对于字符串。你知道,如果我不给参数提供数据,我就不会出错。我需要一些想法来解决这个问题。
Example(4);
public void Example(int, string?){}
对于你们所有人,我给分。感谢帮助。主题[关闭] :)
这不可用,因为string
它已经是引用类型,所以已经可以为空。?
后缀是 的语法糖,Nullable<T>
因此int?
等价于Nullable<int>
... 并且Nullable<T>
具有 的约束where T : struct
,即T
必须是不可为空的值类型string
...
换句话说,你可以写
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");
在 C# 4.0 中,您可以通过编写来使用可选参数
public void Example (int a, string b = null) {}
否则,您可以重载该方法
public void Example (int a) {}
public void Example (int a, string b) {}
string 类型默认为 null,您不需要将其设为 null,因为它已经是引用类型。你可以这样使用它。
public void Example(int i, string s)
{
}
用 null 调用它将是
Example(null, null);
System.String 是一种引用类型,因此您可以在不声明该变量可为空的情况下将其分配给字符串变量 null。
你需要给字符串参数一个默认值吗?
例如
Example(4);
public void Example(int x, string y = null)
{
// etc
}