2016-04-07 9 views
2

なぜこのパワーシェルコードでは、最後のステートメントがtrueに解決されますか?Powershellで文字列をnullにすることはできますか?

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] :: Value' – PetSerAl

+0

はい、' [System.String] $ s = [System.String] [NullString] :: Value'です。 [変数 '$ null'](https://technet.microsoft.com/en-us/library/hh847768.aspx)の意味は空の値である___or___です。 [Powershellからnullを文字列が必要な.NET APIに渡す可能性がありますか?](http://stackoverflow.com/questions/2002570/) –

+0

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

答えて

0

PowerShellは常に空の文字列に詳細はこちらの答えを受け入れ チェックヌル文字列を変換します。あなたはstring.IsNullOrEmptyを(書き込みする必要はありませんので、基本的にPassing null to a mandatory parameter to a function

+0

確かに、そこの詳細はなぜかの質問に入ることはありません。ここでの動機づけを理解することはうれしいでしょう。 –

0

を)またはPowerShellで文字列にnull参照を取得します。 Tony Hoare「Null References:The 10億ドルの間違い」を参照してください。

関連する問題