質問するログイン新規登録

回答編集履歴

1

[NullString]::Valueについて追記

2025/06/29 17:47

投稿

dodox86
dodox86

スコア9418

answer CHANGED
@@ -89,4 +89,19 @@
89
89
  ※上記は自動翻訳による日本語記事なので、ところどころ読みづらい部分があります。元の英語記事はこちら。
90
90
  [Everything you wanted to know about $null - Microsoft Learn](https://learn.microsoft.com/en-us/powershell/scripting/learn/deep-dives/everything-about-null?view=powershell-7.5)
91
91
 
92
- `null`ではない空文字列は`$s = ""`のように表現できるのに、`$null`を`System.String`な引数に渡したメソッド呼び出し時に変換されてしまうのは私個人的にもちょっと不便、と言うか余計なお世話にも感じますね。まぁ、スクリプトと.NETの相互運用性から便宜を図る意図があったのでしょう。
92
+ `null`ではない空文字列は`$s = ""`のように表現できるのに、`$null`を`System.String`な引数に渡したメソッド呼び出し時に変換されてしまうのは私個人的にもちょっと不便、と言うか余計なお世話にも感じますね。まぁ、スクリプトと.NETの相互運用性から便宜を図る意図があったのでしょう。
93
+
94
+ ---
95
+ **[NullString]::Value について追記:**
96
+
97
+ `[NullString]::Value`についてはPowerShellの`$null`とC#の`string`の扱いについての話題でたまに見かけるのですが、なかなか公式のリファレンスには辿り着きづらいようです。今回の回答にあたって気になっていたので、少し調べていました。
98
+
99
+ PowerShell SDKの以下の情報がそれにあたるようです。
100
+
101
+ [NullString Class - Microsoft Learn](https://learn.microsoft.com/en-us/dotnet/api/system.management.automation.language.nullstring?view=powershellsdk-1.1.0)
102
+
103
+ > Definition
104
+ ...
105
+ > This type is introduced to provide a way to pass null into a .NET method that has a string parameter.
106
+
107
+ との説明なので、まさにその用途のクラスですね。