我正在阅读有关比较字符串的最佳实践,并看到了以下两点:
- 使用 String.Compare 和 String.CompareTo 方法对字符串进行排序,而不是检查是否相等。
- 不要使用 String.Compare 或 CompareTo 方法的重载并测试返回值零来确定两个字符串是否相等。
不幸的是,没有解释为什么不推荐它。
CompareTo()
有人能解释一下为什么用它来检查平等性是不好的吗?
我正在阅读有关比较字符串的最佳实践,并看到了以下两点:
不幸的是,没有解释为什么不推荐它。
CompareTo()
有人能解释一下为什么用它来检查平等性是不好的吗?
我找到了这个方法:
public async Task SomeMethod(IEnumerable<Member> members)
{
await DoSomething(members.First());
await DoSomethingElse(members.First());
}
它被这样称呼:
List<Member> members = GetMembers();
await SomeMethod(members);
GetMembers()
我知道如果返回一个,这可能会特别糟糕IQueryable<Member>
,但由于它只是一个,这样List<Member>
调用两次仍然不好吗?First()
最好的做法是调用First()
一次并将结果存储在变量中吗?
我的目标是构建 ASP.NET Core 源代码,以便我可以添加相关项目并在本地调试它们。
我已经克隆了https://github.com/dotnet/aspnetcore/tree/release/6.0并按照以下步骤操作: https://github.com/dotnet/aspnetcore/blob/main/docs/BuildFromSource.md。
我能够恢复/构建一切,没有任何错误。
我已经Microsoft.AspNetCore.Authentication.OpenIdConnect.csproj
在 VS 2022 v17.9.0 Preview 1.1 中打开并尝试构建它,但收到此错误:
错误 NETSDK1141
无法解析位于 C:\aspnetcore\global.json 的 global.json 中指定的 .NET SDK 版本。Microsoft.AspNetCore.Authentication.OpenIdConnect C:\Program Files\dotnet\sdk\8.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.DefaultItems.targets 128
这是我的global.json
文件:
{
"sdk": {
"version": "6.0.125"
},
"tools": {
"dotnet": "6.0.125",
"runtimes": {
"dotnet/x64": [
"2.1.30",
"$(MicrosoftNETCoreBrowserDebugHostTransportVersion)"
],
"dotnet/x86": [
"$(MicrosoftNETCoreBrowserDebugHostTransportVersion)"
],
"aspnetcore/x64": [
"3.1.32"
]
},
"Git": "2.22.0",
"jdk": "11.0.3",
"vs": {
"version": "16.8",
"components": [
"Microsoft.VisualStudio.Component.VC.ATL",
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64"
]
},
"xcopy-msbuild": "16.5.0-alpha"
},
"msbuild-sdks": {
"Yarn.MSBuild": "1.22.10",
"Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.23517.3",
"Microsoft.DotNet.Helix.Sdk": "6.0.0-beta.23517.3"
}
}
根据第一行,我需要下载.NET SDK v6.0.125。
我在档案中找不到这个版本。
我找到的最接近的版本是https://github.com/dotnet/core/blob/main/release-notes/6.0/6.0.12/6.0.12.md。
但是,当我下载并安装它时,它显示 SDK 版本为 6.0.404,运行时版本显示为 6.0.12:
我可以看到我现在已经安装了这些 SDK:
如何下载 .NET SDK 6.0.125?