5

有了这个:

if (args.Parameter == "ContactIntermediaryPage")

...在 NavigatedTo() 事件处理程序中,Resharper 告诉我:“可能的意外引用比较;要进行值比较,请将左侧转换为类型 'string'”

那么我是否应该将其更改为以下之一,如果是的话,是哪一个:

if ((string)args.Parameter == "ContactIntermediaryPage")

if (args.Parameter.ToString() == "ContactIntermediaryPage")

if (args.Parameter.Equals("ContactIntermediaryPage"))
4

2 回答 2

2

我会选择第三个,使其也不区分大小写(如果这适合您的情况)

if (args.Parameter.ToString().Equals(
               "ContactIntermediaryPage", 
                StringComparsion.InvariantCultureIgnoreCase))

换句话说,如果您要与等式 a 的stringmake left部分进行比较string,以使编译器和代码读者清楚,您将在该行上做什么。

于 2012-12-17T22:27:53.733 回答
1

第一个如果 args.Parameter 始终是一个字符串。它节省了一个额外的电话。

否则,当且仅当所有可能的字符串都在您的代码中时,第二个。如果是这样,我会将字符串定义为常量,并尽可能在一个地方引用它们。

如果以上都不是真的,那么请选择 Tigran 的答案。

于 2012-12-17T22:32:38.953 回答