stringの変数がnullなら別の何かに置き換えてほしい | プログラミングがわからなすぎる

プログラミングがわからなすぎる

気が向いた時の備忘録。プログラミングは好きなのに物凄く単純なものしか理解できないからメモしていくうちに覚えられたらいいな
ターゲットフレームワークは大体4.7.2

ログ出力か何かをしているときに遭遇したこと

メッセージ内容を入れた文字列がたまにnullの時があったのだが

if文でnullの時に文字を置き換えるのがめんどくさいからちょっと調べたメモ

 

バグを起こしてみる 

stringの変数を宣言して、初期値を何も設定しないままだと

その辺数はnullになるみたいが、

それをやると構文エラーを出してくる賢い子だったので

わざとstringにnullを入れて実行してみた

 

Formのボタンをクリックして実行!

 

ToString()で怒られた

 

単純に考えたら

if (msg == null)

{

    msg = "";

}

みたいな処理を書いてたけど、もっと何とかならないかなって調べた結果

次の書き方ができるらしい

 

エラーが出ないよう書きなおす 

    

msg ?? ""

 

null合体演算子というらしい

これで実行してみる

 

button1をもっかいクリック

 

エラーは出なかった

 

 

ちゃんと置き換えてくれているのかわかりにくいので

msgがnullの時は"nullだよ"って表示されるようにしてみる

 

表示された

 

 

以下メモ 

 

変数aがnullでない場合はa、nullの場合はbを使いたいときの簡単な書き方

 変数a ?? 変数b