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