Czy "-eq" w równaniu referencyjnym testu Powershell (jak "==" w C#) lub robi to, co jest równoważne wywołaniu Object.Equals()Czy słowo kluczowe -eq w teście mocy jest równoznaczne z odniesieniem do testu lub użyj Object.Equals()
5
A
Odpowiedz
5
Test na równość nie jest takie proste.
Należy pamiętać, że 'a' -eq 'A'
zwraca wartość true. Oznacza to, że PowerShell robi coś więcej niż tylko wywołanie Equals.
Dodatkowo dla twoich obiektów Equals
jest wywoływane zgodnie z oczekiwaniami.
Add-Type -TypeDefinition @"
using System;
public class X {
public string Property;
public X(string s) {
Property = s;
}
public override bool Equals(object o) {
System.Console.WriteLine("equals on {0}", Property);
return Property == ((X)o).Property;
}
public override int GetHashCode() { return 20; }
}
"@
$o1 = New-Object X 'a'
$o2 = New-Object X 'A'
$o1 -eq $o2
Poza tym PowerShell wykorzystuje konwersję dość mocno. Więc jeśli operandy nie są tego samego typu, prawy operand jest konwertowany na typ lewego argumentu. Dlatego właśnie wygrywa '1' -eq 1
.
3
Operator -eq jest żadnym z (jak "==" w C#) i Object.Equals(). Prosty przykład: porównuje łańcuch znaków niewrażliwy na wielkość liter. W rzeczywistości wykonuje wiele konwersji pod okładkami, a niektóre z nich, niestety, mogą nie zawsze być intuicyjnie oczekiwane.
Oto interesujący demo
# this is False
[ConsoleColor]::Black -eq $true
# this is True
$true -eq [ConsoleColor]::Black
Powiązane problemy
- 1. Wielokrotne powtórzone słowo kluczowe "w"
- 2. Czy można dodać słowo kluczowe do C# lub VB.NET?
- 3. Słowo kluczowe (LUB, AND) szukaj w Lucene
- 4. Kiedy słowo kluczowe "do" jest wymagane w Ruby?
- 5. Do czego służy słowo kluczowe "z" pythona?
- 6. Czy słowo kluczowe "use" w PHP jest przekazywane jako odniesienie?
- 7. Czy końcowe słowo kluczowe jest niezbędne w klasie Java singleton?
- 8. "Istnieje" słowo kluczowe w Pythonie?
- 9. Go „to” -słowo kluczowe
- 10. „jako” słowo kluczowe w SML
- 11. W Pythonie 3.2 słowo "lambda" jest uważane za "słowo kluczowe", "operator" lub jedno i drugie?
- 12. PID z ps -ef | grep słowo kluczowe
- 13. Czy null to słowo kluczowe Java?
- 14. Do czego służy słowo kluczowe "char"?
- 15. PHP Jak sprawdzić, czy zmienna jest odniesieniem?
- 16. Czy słowo kluczowe "przeciążenie" ma znaczenie?
- 17. W Pythonie 3.5, czy słowo kluczowe "czekać" odpowiada "wydaniu z"?
- 18. JavaScript "argumenty" Słowo kluczowe
- 19. F # - Jakie jest słowo kluczowe "to"?
- 20. Wiążące słowo kluczowe odnosi się do czego?
- 21. Czy słowo kluczowe "przesłonięcie" jest tylko sprawdzeniem zastępowanej metody wirtualnej?
- 22. Słowo kluczowe Spotting in Speech
- 23. Czym dokładnie jest słowo kluczowe "powinien" w RSpec Ruby
- 24. utworzyć słowo kluczowe w łączu automatycznie, globalnie
- 25. Wykorzystaj nowe słowo kluczowe opcjonalnie
- 26. Słowo kluczowe "ref" i AppDomains
- 27. Co oznacza słowo kluczowe "i" w OCaml?
- 28. Jak wysłać kluczowe zdarzenia do bezgłowego emulatora w teście instrumentacji?
- 29. C# - Wyłącz dynamiczne słowo kluczowe
- 30. Kiedy przekazać słowo kluczowe ref w