コード検査: 'if' ステートメントを 'switch' に変換する
このインスペクションは、一連の if ステートメントを報告し、単一の switch ステートメントまたは switch 式に変換することを提案します。
単一の switch を使用すると、複数の if ステートメントに比べてコードが簡潔になり、理解しやすくなります。特に、テストされるケースの数が増えると、その傾向が顕著になります。
class Parser
{
Marker Parse(string marker)
{
if (marker is "<=HEADER=>")
return Marker.Header;
if (marker is "<=FOOTER=>")
return Marker.Footer;
return Marker.None;
}
}
enum Marker {None, Header, Footer}
class Parser
{
Marker Parse(string marker)
{
return marker switch
{
"<=HEADER=>" => Marker.Header,
"<=FOOTER=>" => Marker.Footer,
_ => Marker.None
};
}
}
enum Marker {None, Header, Footer}
2024 年 5 月 08 日
関連ページ:
コードインスペクション設定を構成する
設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...
コード検査: 「SequenceEqual」を定数パターンに置き換える
文字範囲の解析を扱う場合、おそらく MemoryExtensions.SequenceEqual メソッドを頻繁に使用します。C# 11 は、この種のチェックのショートカットを導入し、または式を使用して単純に文字列リテラルに対する文字のパターンマッチ範囲を使用できるようにします。このインスペクションは、このようなコンテキストでのの使用状況を報告し、より簡潔な構文にアップグレードできます。public static bool IsHeader(ReadOnlySpan<char> head...