gpt4 book ai didi

c# - Equals() 与静态 string.Equals()

转载 作者:行者123 更新时间:2023-11-30 20:37:22 27 4
gpt4 key购买 nike

阅读有关 C# 中的字符串比较的文章,我发现有很多方法可以比较 2 个字符串以查看它们是否相等。

我习惯了来自 C++ 的 == 但我了解到,如果你将一个对象与一个字符串进行比较,那么 == 默认为引用值(或类似的东西).

然后对于 Equals() 方法,假设我有 2 个字符串。

string s1 = null;
string s2 = "Hello";

如果我做 s1.Equals(s2);

我得到一个空引用异常,因为第一个字符串是空的

但如果我这样做

string.equals(s1,s2);

如果其中一个值是null,它将简单地返回false,如果两个值都是null,它将返回true 因为两个字符串都是相同的,因为它们都是 null

那么有什么理由不总是使用 string.equals() 方法呢?另外一件事是,如果我在字符串中键入带有大写字母 S 的 string.equals(),就像这样 String.equals()然后它仍然会像我使用小写字母一样运行,但是 IDE (visual studio 2015) 会告诉我它可以被简化,当我简化它时它会把它变成小写字母 s。这是为什么?

最佳答案

根据 MSDN , string.Equals 方法

Determines whether two String objects have the same value.

这就是为什么 string.equals(s1,s2); 在你的情况下总是返回 false,如果 s1s2为 null 或具有相同的值将返回 true。

Also another thing is that if i type the string.equals() with a capital S in the string like this String.equals() then it wll still run the same as if i had it lower case but the IDE (visual studio 2015) will tell me that it can be simplified and when i simplify it it turn it to a lower case s. Why is that?

string 是 C# 原语,而 System.String 或简单的 String 是对应的 FCL(Framework Class Library)类型。与intInt32一样,int是C#原语,Int32是对应的FLC类型.

关于c# - Equals() 与静态 string.Equals(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36221879/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com