您可以通过字符串的存储位置而不是内容来比较字符串吗?

奥斯汀·哈里斯(Austin Harris)

我在某处读到,如果您的应用程序中有多个相同的字符串,则实际上只创建了一个,并且所有引用实际上都指向相同的字符串。

在阅读有关锁的信息时,我会看到有关此行为的警告。就像从不锁定字符串一样,因为应用程序中任何其他位置的任何其他锁定都可能锁定同一字符串。特别是如果您锁定:

string lockObj = "";
...
{
  lock(lockObj){
  ...
  }
}

因此,这使我回到了那里,只有一个特定字符串的单个副本。因此,如果我想比较两个字符串,有什么办法可以通过它们的存储位置来做到这一点?喜欢..

public bool areSame(string s1,string s2){
   return &s1 == &s2;
}

谢谢您的帮助!

谢尔盖·卡里尼琴科(Sergey Kalinichenko)

我在某处读到,如果您的应用程序中有多个相同的字符串,则实际上只创建了一个,并且所有引用实际上都指向相同的字符串。

那是不对的。尽管您可以按照每个唯一的字符串使用一个对象的方式来安排程序,但.NET不能保证。确实,C#编译器会将string程序中由字符串文字产生的所有对象指向同一个字符串对象。但是,创建string具有相同内容的多个对象相当容易

如果我想比较两个字符串,有什么办法可以通过它们的存储位置来做到这一点?

您可以Object.ReferenceEquals为此使用方法:

public bool areSame(string s1,string s2){
   return Object.ReferenceEquals(s1, s2);
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

您可以在Swift中评估字符串吗?

来自分类Dev

您可以通过字符串的存储位置而不是内容来比较字符串吗?

来自分类Dev

带有特殊字符的相等字符串的不同存储位置

来自分类Dev

您可以在Swift字符串插值中使用字符串/字符文字吗?

来自分类Dev

您可以通过Java中的索引(索引)访问字符串吗?

来自分类Dev

为什么有必要允许将等效的字符串文字存储在不同的静态存储位置中

来自分类Dev

可以在if条件中比较部分字符串吗?

来自分类Dev

通过[]访问的字符串的字符是字符串吗?

来自分类Dev

枚举可以返回字符串而不是整数吗?

来自分类Dev

您可以求和mysql中的字符串吗?

来自分类Dev

我们可以在C ++中重载`==`运算符来比较两个字符串吗?

来自分类Dev

在hbase中将所有整数存储为字符串而不是byte []可以吗?

来自分类Dev

在连续的存储位置中存储字符串文字

来自分类Dev

python可以执行字符串操作而不复制字符串存储器吗

来自分类Dev

我可以使用通配符比较字符串吗?

来自分类Dev

char数组和字符串在c中的存储位置

来自分类Dev

查询字符串可以包含字符串以外的任何内容吗?

来自分类Dev

您可以将字符串中的字符添加到列表中吗?

来自分类Dev

Matlab:字符串不是真正的字符串吗?

来自分类Dev

布尔值可以与字符串进行比较吗?

来自分类Dev

您可以通过Java中的索引(索引)访问字符串吗?

来自分类Dev

比较字符串

来自分类Dev

使用字符串比较来比较语义版本字符串是否可靠

来自分类Dev

我的字符串比较实现对吗?

来自分类Dev

我可以将重复的字符串存储在字符串数组中吗?

来自分类Dev

我们可以在 Chrome Storage 中存储文件而不是字符串吗

来自分类Dev

为什么我可以使用视图边界而不是上限来比较字符串?

来自分类Dev

您可以拆分字符串并保留拆分字符吗?

来自分类Dev

无法通过从 bash 调用 perl oneliner 来比较两个版本字符串

Related 相关文章

  1. 1

    您可以在Swift中评估字符串吗?

  2. 2

    您可以通过字符串的存储位置而不是内容来比较字符串吗?

  3. 3

    带有特殊字符的相等字符串的不同存储位置

  4. 4

    您可以在Swift字符串插值中使用字符串/字符文字吗?

  5. 5

    您可以通过Java中的索引(索引)访问字符串吗?

  6. 6

    为什么有必要允许将等效的字符串文字存储在不同的静态存储位置中

  7. 7

    可以在if条件中比较部分字符串吗?

  8. 8

    通过[]访问的字符串的字符是字符串吗?

  9. 9

    枚举可以返回字符串而不是整数吗?

  10. 10

    您可以求和mysql中的字符串吗?

  11. 11

    我们可以在C ++中重载`==`运算符来比较两个字符串吗?

  12. 12

    在hbase中将所有整数存储为字符串而不是byte []可以吗?

  13. 13

    在连续的存储位置中存储字符串文字

  14. 14

    python可以执行字符串操作而不复制字符串存储器吗

  15. 15

    我可以使用通配符比较字符串吗?

  16. 16

    char数组和字符串在c中的存储位置

  17. 17

    查询字符串可以包含字符串以外的任何内容吗?

  18. 18

    您可以将字符串中的字符添加到列表中吗?

  19. 19

    Matlab:字符串不是真正的字符串吗?

  20. 20

    布尔值可以与字符串进行比较吗?

  21. 21

    您可以通过Java中的索引(索引)访问字符串吗?

  22. 22

    比较字符串

  23. 23

    使用字符串比较来比较语义版本字符串是否可靠

  24. 24

    我的字符串比较实现对吗?

  25. 25

    我可以将重复的字符串存储在字符串数组中吗?

  26. 26

    我们可以在 Chrome Storage 中存储文件而不是字符串吗

  27. 27

    为什么我可以使用视图边界而不是上限来比较字符串?

  28. 28

    您可以拆分字符串并保留拆分字符吗?

  29. 29

    无法通过从 bash 调用 perl oneliner 来比较两个版本字符串

热门标签

归档