2016-04-07 14 views
2

Warum wird in diesem Powershell-Code die letzte Anweisung in "true" aufgelöst?Können Strings in Powershell null sein?

PS C:\> $s = [System.String]$null 
PS C:\> $s.GetType() 
IsPublic IsSerial Name          BaseType                 
-------- -------- ----          --------                 
True  True  String         System.Object 
PS C:\> $s -eq "" 
True 
+2

'$ s = [System.String] [NullString] :: Wert' – PetSerAl

+0

Ja oder sogar' [System.String] $ s = [System.String] [NullString] :: Value'. Die Bedeutung der [Variablen $ null'] (https://technet.microsoft.com/en-us/library/hh847768.aspx) ist NULL ___oder___ ein leerer Wert. Etwas verwandt mit [Kann NULL von Powershell zu einer .Net API übergeben werden, die eine Zeichenfolge erwartet?] (Http://stackoverflow.com/questions/2002570/) –

+0

[verwandt] (https://stackoverflow.com/q/ 45720150/1404637) – alx9r

Antwort

0

Powershell konvertiert immer null Strings leere Zeichenkette prüfen akzeptierte Antwort hier für weitere Details: Passing null to a mandatory parameter to a function

+0

Sicher, aber die Details gehen nicht auf die Frage nach dem Warum ein. Es wäre schön, hier die Motivation zu verstehen. –

0

Grundsätzlich, so dass Sie nie string.IsNullOrEmpty() oder eine Null-Referenz erhalten auf einer Schnur in Powershell schreiben . Siehe Tony Hoare "Null Referenzen: Der Milliarden Dollar Fehler".

Verwandte Themen