串?对于方法中的C#

Raf*_*per 3 c#

我想要像tkis"int?"这样的东西.但是对于字符串.你知道如果我不给参数数据我就不会有错误.我需要一些关于这个问题的想法.

Example(4);

public void Example(int, string?){} 
Run Code Online (Sandbox Code Playgroud)

对于你们所有人,我给予积分.感谢帮助.主题[关闭] :)

Jon*_*eet 11

由于string已经是引用类型,因此不可用,因此已经可以为空.该?后缀是语法糖Nullable<T>,所以int?等同于Nullable<int>...和Nullable<T>具有一个约束where T : struct,即,T必须是一个非空值类型...其排除string.

换句话说,你可以写

public void Example(int x, string y)
{
    if (y == null)
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,这与使其成为可选参数不同.在传递null价值仍传递一个值.如果你想让它成为一个可选参数,你也可以这样做:

public void Example(int x, string y = "Fred")

...

Example(10); // Equivalent to Example(10, "Fred");
Run Code Online (Sandbox Code Playgroud)