我是C#的新手,我找到了两种比较字符串的方法.这两种方法有什么不同?

var a = "hello";
var b = "hello";

a.Equals(b);
string.Equals(a, b);

推荐答案

不同之处在于,如果a为空,则a.Equals(b)会抛出异常:

string a = null;
string b = "hello";

a.Equals(b); // throws a NullReferenceException
string.Equals(a, b); // returns false

尤其是当您知道字符串可能为空(例如,用户输入)时,使用string.Equals(a, b)会更安全.

Csharp相关问答推荐

Azure DEVOPS找不到定制的Nuget包

S能够用DATETIME来计算,这有什么错呢?

如何在页面重新加载后保持菜单切换状态

MS Graph v5.42.0:在寻呼消息时更改页面大小

异步任务导致内存泄漏

反序列化私有成员

在C#中过滤Excel文件

有没有更好的方法来在CosmosDB上插入非id?

BFF到具有AAD/Entra ID B2C的内部API(.NET/ASP.NET核心/标识.Web)

C#LINQ延迟执行和嵌套方法

我可以强制System.Text.Json.JsonSerializer以非递归方式工作吗?

SharpZipLib在文件名前加上目录名,生成tar.gz

Xamarin Forms应用程序中登录页面的用户名和密码编辑文本之间不需要的空格

在Unity C#中按键点击错误的参数

默认架构不存在EF核心迁移

是否在异步方法中避免Span<;T>;.ToArray()?

具有双返回类型的多路委托,仅返回最后一个方法';S结果,而不是所有方法';S结果

docker-compose拒绝连接到同一网络中的其他容器

为什么LoadLibrary无法加载由vcpkg构建的OpenCV_world DLL,而不是预构建的二进制版本?

EF Core可以';t计算表达式值.net 6