您好,我有以下代码:
log.Entry = (newEntry ?? "").Substring(0,Math.Min((newEntry ?? "").Length, 50));
log.Entry是nvarchar(50)的数据库字段 所以我想做的是限制最多 50 个字符,但也有空检查,所以我不尝试在 null 上运行字符串函数,这可能会引发异常。(?)
我的问题是第二个 (newEntry ?? "") 可以被某种运算符简化吗? 这已经评估过一次,可能不需要再次评估。 我正在寻找一种单行代码,因此它类似于 lambda 风格的语法。 (但我猜不是实际的 lambda)。
最佳答案
log.Entry = newEntry?.Substring(0, Math.Min(newEntry.Length, 50)) ?? "";
或者删除?? ""
如果你希望 log.Entry
为 null 如果 newEntry
为 null:
log.Entry = newEntry?.Substring(0, Math.Min(newEntry.Length, 50));
关于c# - 有没有一种方法可以引用链中的最后一个表达式以用作函数中的参数(C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43209358/