我有一个带有这个签名的函数:
public void DoSomething(String name);
该字符串name
在我的应用程序中很特殊。它可以是任意字符串,也可以是特殊的已知值。因为任何非空字符串值都是有效输入,这意味着我需要对空字符串使用对象引用相等,如下所示:
public class Foo {
public const String SpecialValue1 = "";
public const String SpecialValue2 = "";
public void DoSomething(String name) {
if( Object.ReferenceEquals( name, SpecialValue1 ) ) {
} else if( Object.ReferenceEquals( name, SpecialValue2 ) {
} else {
}
}
public void UsageExample() {
DoSomething( SpecialValue1 );
DoSomething( "some arbitrary value" );
}
}
我想知道这种使用空字符串和对象引用相等的技术是否总是安全的,尤其是在字符串实习方面。