| File: ToolCommandName.cs | Web Access |
| Project: src\sdk\src\Cli\Microsoft.DotNet.Cli.Utils\Microsoft.DotNet.Cli.Utils.csproj (Microsoft.DotNet.Cli.Utils) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. namespace Microsoft.DotNet.Cli.Utils; public readonly struct ToolCommandName : IEquatable<ToolCommandName> { public ToolCommandName(string name) { if (name == null) { throw new ArgumentNullException(nameof(name)); } if (name == string.Empty) { throw new ArgumentException(message: "cannot be empty", paramName: nameof(name)); } Value = name; } public string Value { get; } public override string ToString() => Value; public bool Equals(ToolCommandName other) { return string.Equals(Value, other.Value, StringComparison.OrdinalIgnoreCase); } public override bool Equals(object? obj) { return obj is ToolCommandName name && Equals(name); } public override int GetHashCode() { return StringComparer.OrdinalIgnoreCase.GetHashCode(Value); } public static bool operator ==(ToolCommandName name1, ToolCommandName name2) { return name1.Equals(name2); } public static bool operator !=(ToolCommandName name1, ToolCommandName name2) { return !name1.Equals(name2); } public static ToolCommandName[] Convert(string[] toolCommandNameStringArray) { var toolCommandNames = new ToolCommandName[toolCommandNameStringArray.Length]; for (int i = 0; i < toolCommandNameStringArray.Length; i++) { toolCommandNames[i] = new ToolCommandName(toolCommandNameStringArray[i]); } return toolCommandNames; } }