Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将可能为null的参数传递给方法_C# - Fatal编程技术网

C# 将可能为null的参数传递给方法

C# 将可能为null的参数传递给方法,c#,C#,我有以下方法调用,由于某种原因,C#中的语法无法正常工作。如果pkg.Library.description为空,则将其设置为字符串..“未选择文件夹”。还有别的办法吗 SendEmail (pkg.libraryfolder.description == null ? "No Folder Selected" :pkg.libraryfolder.description) public void SendEmail(string folderdescription) { //// } 我不

我有以下方法调用,由于某种原因,C#中的语法无法正常工作。如果pkg.Library.description为空,则将其设置为字符串..“未选择文件夹”。还有别的办法吗

SendEmail (pkg.libraryfolder.description == null ? "No Folder Selected" :pkg.libraryfolder.description)

public void SendEmail(string folderdescription)
{
////
}

我不确定您所写的为什么不起作用,但另一种方法是使用空合并运算符,用双问号表示,如下所示:

var x=y??z

如果y不为空,则x设置为y;如果y为空,则x设置为z


这是关于运算符的。

我不确定您所写的为什么不起作用,但另一种方法是使用空合并运算符,用双问号表示,如下所示:

var x=y??z

如果y不为空,则x设置为y;如果y为空,则x设置为z


这是关于运算符的。

您没有解释代码不工作的原因,应该是,我猜是pkgs为null还是libraryfolder为null。目前,您只是检查描述是否为null,如果其他任何内容为null,这将是一个错误。要解决这个问题,请尝试:-

SendEmail (pkg?.libraryfolder?.description == null ? "No Folder Selected" :pkg.libraryfolder.description)

public void SendEmail(string folderdescription)
{
////
}
或者使用

 SendEmail (pkg?.libraryfolder?.description ?? "No Folder Selected");

你没有解释为什么你的代码不工作,它应该,我猜要么pkgs是空的要么libraryfolder是空的。目前,您只是检查描述是否为null,如果其他任何内容为null,这将是一个错误。要解决这个问题,请尝试:-

SendEmail (pkg?.libraryfolder?.description == null ? "No Folder Selected" :pkg.libraryfolder.description)

public void SendEmail(string folderdescription)
{
////
}
或者使用

 SendEmail (pkg?.libraryfolder?.description ?? "No Folder Selected");