小编mar*_*ark的帖子

在c#中混淆使用==运算符

==当我使用像这里的文字字符串时,我在使用in(c#)时感到困惑:

object a="hello";
object b="hello";
Run Code Online (Sandbox Code Playgroud)

比较a==b是真的.

但是当我使用像这样的对象:

object c=new StringBuilder("hello").ToString();
object d=new StringBuilder("hello").ToString();
Run Code Online (Sandbox Code Playgroud)

比较a==b将是错误的.

即使a,b,c,d编译时所有类型的System.Object和 ==运算符比较值都取决于它们在编译时的值.

我使用扩展方法在编译期间获取varabiles的类型:

public static class MiscExtensions
{
    public static Type GetCompileTimeType<T>(this T dummy)
    { return typeof(T); }
}
Run Code Online (Sandbox Code Playgroud)

.net c#

5
推荐指数
2
解决办法
281
查看次数

标签 统计

.net ×1

c# ×1