コードを書くコツ
同じ目的でプログラミングをするにしても、どのような書き方が推奨されているのか?同じように書いても動作するが、果たしてこれがいいのか?見やすいのだろうか?そのような疑問が出てくると思います。ここでは、主なコード作成の定石、セオリーを見てみましょう。
C#の基本
変数
変数の初期化
変数は、変数の宣言と初期化の間に別のコードが入ることを防ぐため、また、見やすくするために宣言と同時に初期化するようにしましょう。
正しい例
var hp = 100;
varは、型推論です。100が代入されているため、int型であることがわかります。その場合、コンパイラが判断できますので、varと書くことができます。宣言としては、int hp = 100;と全く同じになります。
△推奨されない例
int hp;
hp = 100;
2つのステートメントの間に別のコードが入り込む余地があります。
その場合、コード全体の見通しが悪くなることがあります。
数値に1を足す
1を加える場合、++演算子を使うようにしましょう。
正しい例
hp++;
△推奨されない例
hp += 1;
宣言と代入の間に他のコードが入ると読みづらくなります。
制御構文
条件分岐
変数とリテラルの比較
比較する変数は、条件式の左側に書きます。
正しい例
if (hp <= 100)
「hpが100以下になった場合」と解釈できます。
人が読みやすいステートメントです。
×悪い例
if (100 >= hp)
「100はhpより大きい」と読まなくてはならず、分かりづらい
bool値での比較 (trueの場合)
bool値は、比較のための条件式が省略できます。
正しい例
if (isRun)
×悪い例
if (isRun == true)
bool値での比較 (falseの場合)
正しい例
if (!isRun)
×悪い例
if ( isRun == false)
修飾子の記述順序(構文規則としては自由ですが、統一した方がいいです)
ReSharperサンプル(JetBrains社がリリースしているVisualStudio用の拡張機能)
上ほど、先に記述します。
例えば、修飾子にstaticと publicが付く場合、 public の方が上位になっていますので、public static となります。
// アクセス修飾子
{ public / protected / internal / private / protected internal }
new
// 継承修飾子
{ abstract / virtual / override }
sealed
static
readonly
extern
unsafe
volatile
async
記述サンプル
推奨される例
public static void MyMethod()
{
}
×推奨されない例
static public void MyMethod()
{
}
コードをシンプルにする
using staticで、省略
using static を宣言すると、クラス変数やクラスメソッドのアクセスで、クラス名.を省略することができます。
静的クラス(static クラス)の場合
使用する例
using static Console;
class Program
{
static void Main(string[] args)
{
WriteLine("Hello World");
}
}
×使用しない例
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
列挙型の場合
使用する例
using static MyColor;
enum MyColor
{
Red,
Blue,
}
class Program
{
static void Main(string[] args)
{
MyColor myColor = Red;
switch (myColor)
{
case Red:
Console.WriteLine("赤色です");
break;
case Blue:
Console.WriteLine("赤色です");
break;
default:
break;
}
Console.WriteLine(Red);
Console.WriteLine((int)Red);
}
}
×使用しない
enum MyColor
{
Red,
Blue,
}
class Program
{
static void Main(string[] args)
{
MyColor myColor = MyColor.Red;
switch (myColor)
{
case MyColor.Red:
Console.WriteLine("赤色です");
break;
case MyColor.Blue:
Console.WriteLine("赤色です");
break;
default:
break;
}
Console.WriteLine(MyColor.Red);
Console.WriteLine((int)MyColor.Red);
}
}
ほど、先に記述します。
例えば、修飾子にstaticと publicが付く場合、 public の方が上位になっていますので、public static となります。
ディスカッション
コメント一覧
まだ、コメントがありません