我有一个本地化字符串,显然如果设置为null导致视图中出现问题.所以我的解决方案就是把它串起来.
_localizer["Controller_Account_ResetPassword_ResetFailed"].ToString();
Run Code Online (Sandbox Code Playgroud)
在代码审查期间,我的同事提醒我.ToString()不是空的安全.虽然本地化不太可能是空的,但我猜它可能是.他建议如下.
TempData["Message"] = $"{_localizer["Controller_Account_ResetPassword_ResetFailed"]}";
Run Code Online (Sandbox Code Playgroud)
我有两个问题.
首先,原因是它基本上被反编译为
var arg = _localizer["Controller_Account_ResetPassword_ResetFailed"];
string.Format("{0}", arg);
Run Code Online (Sandbox Code Playgroud)
并string.Format 做了null关于它的参数检查,并与自动替换它们string.Empty.
其次,这个解决方案很漂亮,字符串插值是一个巧妙的工具.你应该用它:)
编辑:
我有点忽略了这里的事实,字符串插值仅用于解决null问题.有些人指出这是不必要的,并且每个人都应该喜欢字符串插值这样的事情:
_localizer["Controller_Account_ResetPassword_ResetFailed"]?.ToString() ?? "";
Run Code Online (Sandbox Code Playgroud)
会是一个更好的选择.
| 归档时间: |
|
| 查看次数: |
141 次 |
| 最近记录: |