[C#] 可読性を重視したC#のコード改善テクニック


はじめに

C#での開発をおこなっていると、みやすい・理解しやすいコードと、読むのに時間がかかったり見ずらいコードをよく見かけます。

大体半々くらいですかね・・・

今回は、少し気にするだけで、とても読みやすい・理解しやすいコードがかけるための改善テクニックを紹介します。

 

文字列変数の初期化はダブルクォートを使わずにstring.emptyを使う

変数の初期化として、以下の様に記載するかたも多いかと思います

string sample1 = "";

if(sample1 == "")
{
    Console.WriteLine("空です");   
}
else
{
    Console.WriteLine("空ではありません");  
}

ですが、全く同じ書き方でも「String.Empty」を利用することで読みやすさが向上します。

また、空チェックでは「IsNullOrEmpty」利用すると、よりわかりやすいですね。

string sample1 = string.Empty;

if(string.IsNullOrEmpty(sample1) == true)
{
    Console.WriteLine("空です");   
}
else
{
    Console.WriteLine("空ではありません");  
}

&ncsp;

文字列の連結は「+」を使わない

文字列同士を連結する場合、「+」を利用しているソースをたまに見かけます。

プラス演算子で結合するのではなく、「$""」で結合すると、結合後の状態もわかりやすいのではないでしょうか?

もちろんstring.Formatも同じイメージですが、サイズ的には「$""」での記載をお勧めします。


string result = string.Empty;
string sample1 = "Hello";
string sample2 = "World";
string sample3 = "!!";

// プラスで連結する場合
result = sample1 + " " + sample2 + sample3;

// string.Format利用
result = string.Format("{0} {1}{2}", sample1, sample2, sample3);

// 推奨
result = $"{sample1} {sample2}{sample3}";

 

 

メソッドの返り値ではreturnを使う

どちらを利用しても良いのですが、可読性という意味ではoutを使うよりreturnを使った方がわかり安いですね

public void DoSomething(out string value)
{
    value = "result";   
}

outを使うと、返り値がわかりづらいかなぁと思います。

public string DoSomething()
{
    string value = "result";
    return value;   
}

返り値が明示的に指定されているので、読み手としてはこちらの方がわかりやすいですね。

 

メソッド名とコメント

結構よく見かけるのが、各メソッドにコメントがついていない場合が多いということです。

保守を前提とするソフトウェア開発ではコメントを書いておく必要があります。

また、メソッド名も曖昧な名前にするのではなくわかりやすい名前にする方が良いかと思います。

public string GetValue()
{
    ・・・
    return value;
}

上記はコメントを書いていない場合です。

例ですが、なんの値が帰ってくるのかがわかりにくいですね。

//レジストリ値を取得する
public string GetRegValue()
{
    ・・・
    return value;
}

または、クラス名.メソッド名で推測できるのであれば、下記の様でも良いかと思います。

class Registry
{
    public string GetValue()
    {
        ・・・
        return value;
    }
}

&ncsp;

最後に

今回は4つほど紹介してみました。

他にもいろいろありますが、基本的なことを押さえておくのも良いかと思います。

業務によっては上記のかぎりではありませんが、なるべく可読性のあるコードを書く様に心がけてください。