比较具有动态、对象和整数/字符串作为参数的 int 和 string 时的区别?

丹尼尔

我尝试使用等于运算符 ' == ' 比较两个 int 值和两个字符串值。我使用了 3 个函数,它们的输入参数类型为 dynamic、object 和 int/string。当我使用字符串参数进行比较时,似乎在所有 3 种情况下使用 ' == ' 运算符都会返回正确的答案。使用 int 类型时,在对象输入类型参数的情况下,即使 2 个 int 值相等,它也会返回 false。我知道 ' == ' 运算符,在对象的情况下,它比较 2 个对象在内存中是否具有相同的引用,因此这可以解释为什么我收到 false。但我不明白为什么在字符串类型的情况下它工作得很好。

代码:

public static bool CompareD(dynamic a, dynamic b)
{
    return a == b;
}

public static bool CompareO(object a, object b)
{
    return a == b;
}

public static bool CompareS(int a, int b)
{
    return a == b;
}

我期待当我使用字符串时,在对象类型输入参数的情况下,即使这两个字符串相等,也会收到 false,就像 int 一样,但我收到了正确的答案。

塞缪尔·沃伦

这可能是因为字符串是不可变的。实现这一点的代码在 String 类中。它看起来像这样:

public static bool operator ==(string a, string b)
{
    return string.Equals(a, b);
}

因此,任何“==”比较都将检查相等性而不是字符串上的引用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

声明字符时char和int之间的区别

来自分类Dev

Int ...和Int []之间的区别

来自分类Dev

定义char和int时指针的区别是什么?

来自分类Dev

var map=HashMap<Int,String>() 和 var map=HashMap<Int,String>(n) 有什么区别?

来自分类Dev

int * a和int * a = new int之间的区别

来自分类Dev

"\(string)" 和字符串的区别?

来自分类Dev

当字符串包含数字和多余的字符时,将字符串解析为int

来自分类Dev

当字符串包含数字和多余的字符时,将字符串解析为int

来自分类Dev

char和int数组的区别

来自分类Dev

int * a和char * a之间的区别?

来自分类Dev

char []和int []之间的区别

来自分类Dev

void(int)和void(*)(int)之间的区别

来自分类Dev

const int和int文字之间的区别

来自分类Dev

int和new int()之间的区别

来自分类Dev

使用反射调用方法时,int和Integer参数之间的区别

来自分类Dev

与IF条件下的int和string比较

来自分类Dev

用作模板类型时,类型 size_t 和 int 的用法之间的区别?

来自分类Dev

C 指针(使用指针时 int 和 char 之间的区别),下面的示例?

来自分类Dev

Seq [Int]和List [Int]之间的区别和转换

来自分类Dev

当unsigned int可以容纳任何地址时,uintptr_t和unsigned int之间有什么区别吗?

来自分类Dev

String.valueOf(int i)和仅打印i之间的区别

来自分类Dev

String.valueOf(int i)和仅打印i之间的区别

来自分类Dev

用const string和string const声明字符串有什么区别

来自分类Dev

int(* function)(int,int)和int * function(int,int)之间的区别

来自分类Dev

如何在整数时返回 int,同时忽略浮点数和字符串

来自分类Dev

使用getIntent()时int和字符串之间的冲突

来自分类Dev

使用getIntent()时int和字符串之间的冲突

来自分类Dev

[String!]和[String]!有什么区别?

来自分类Dev

String和String []有什么区别?

Related 相关文章

  1. 1

    声明字符时char和int之间的区别

  2. 2

    Int ...和Int []之间的区别

  3. 3

    定义char和int时指针的区别是什么?

  4. 4

    var map=HashMap<Int,String>() 和 var map=HashMap<Int,String>(n) 有什么区别?

  5. 5

    int * a和int * a = new int之间的区别

  6. 6

    "\(string)" 和字符串的区别?

  7. 7

    当字符串包含数字和多余的字符时,将字符串解析为int

  8. 8

    当字符串包含数字和多余的字符时,将字符串解析为int

  9. 9

    char和int数组的区别

  10. 10

    int * a和char * a之间的区别?

  11. 11

    char []和int []之间的区别

  12. 12

    void(int)和void(*)(int)之间的区别

  13. 13

    const int和int文字之间的区别

  14. 14

    int和new int()之间的区别

  15. 15

    使用反射调用方法时,int和Integer参数之间的区别

  16. 16

    与IF条件下的int和string比较

  17. 17

    用作模板类型时,类型 size_t 和 int 的用法之间的区别?

  18. 18

    C 指针(使用指针时 int 和 char 之间的区别),下面的示例?

  19. 19

    Seq [Int]和List [Int]之间的区别和转换

  20. 20

    当unsigned int可以容纳任何地址时,uintptr_t和unsigned int之间有什么区别吗?

  21. 21

    String.valueOf(int i)和仅打印i之间的区别

  22. 22

    String.valueOf(int i)和仅打印i之间的区别

  23. 23

    用const string和string const声明字符串有什么区别

  24. 24

    int(* function)(int,int)和int * function(int,int)之间的区别

  25. 25

    如何在整数时返回 int,同时忽略浮点数和字符串

  26. 26

    使用getIntent()时int和字符串之间的冲突

  27. 27

    使用getIntent()时int和字符串之间的冲突

  28. 28

    [String!]和[String]!有什么区别?

  29. 29

    String和String []有什么区别?

热门标签

归档