有了这个:
if (args.Parameter == "ContactIntermediaryPage")
...在NavigatedTo()事件处理程序中,Resharper告诉我:“可能的非预期参考比较;要获得值比较,请将左侧投射到'string'类型”
所以我应该将其更改为以下之一,如果是,则将其更改为:
if ((string)args.Parameter == "ContactIntermediaryPage")
if (args.Parameter.ToString() == "ContactIntermediaryPage")
if (args.Parameter.Equals("ContactIntermediaryPage"))
答案 0 :(得分:2)
我会选择第三个,使其不敏感(如果这适用于您的情况)
if (args.Parameter.ToString().Equals(
"ContactIntermediaryPage",
StringComparsion.InvariantCultureIgnoreCase))
换句话说,如果您要与等式string
的{{1}} make left 部分进行比较,以便向编译器和您的读者说明代码,你将在那条线上做什么。
答案 1 :(得分:1)
第一个如果args.Parameter总是一个字符串。它节省了额外的电话。
否则第二个,如果且仅当所有可能的字符串都在您的代码中时。如果是这样,我会将字符串定义为常量,并在可能的情况下在一个地方引用它们。
如果以上都不是真的,那就去找Tigran的答案。