回答編集履歴
8
リンク追加
answer
CHANGED
@@ -77,7 +77,7 @@
|
|
77
77
|
if (player.lapCount == 1) から始まるif文の各分岐も同じような処理をしていますね。
|
78
78
|
また、変数名にOne,Two,Threeという単語は通常つけません。
|
79
79
|
|
80
|
-
One,Two,Threeとつけた変数を配列やリストのようなコレクションにまとめることでこの分岐を無くすことが出来ます。
|
80
|
+
One,Two,Threeとつけた変数を[配列](https://ufcpp.net/study/csharp/st_array.html)やリストのようなコレクションにまとめることでこの分岐を無くすことが出来ます。
|
81
81
|
```diff
|
82
82
|
- private string oneLapTimeStoring; // 1ラップ目
|
83
83
|
- private string twoLapTimeStoring; // 2ラップ目
|
7
追記
answer
CHANGED
@@ -75,8 +75,16 @@
|
|
75
75
|
> 同じ処理を何回も書くのはダメだと聞いた
|
76
76
|
|
77
77
|
if (player.lapCount == 1) から始まるif文の各分岐も同じような処理をしていますね。
|
78
|
-
変数名にOne,Two,Threeという単語は通常つけません。
|
78
|
+
また、変数名にOne,Two,Threeという単語は通常つけません。
|
79
79
|
|
80
|
+
One,Two,Threeとつけた変数を配列やリストのようなコレクションにまとめることでこの分岐を無くすことが出来ます。
|
81
|
+
```diff
|
82
|
+
- private string oneLapTimeStoring; // 1ラップ目
|
83
|
+
- private string twoLapTimeStoring; // 2ラップ目
|
84
|
+
- private string threeLapTimeStoring; // 3ラップ目
|
85
|
+
+ private List<string> lapTimeMessages;
|
86
|
+
```
|
87
|
+
|
80
88
|
# 余談③
|
81
89
|
|
82
90
|
コメントの書き方も実は改善できます。
|
6
誤字
answer
CHANGED
@@ -66,7 +66,7 @@
|
|
66
66
|
|
67
67
|
変数名はその変数の使われる目的に沿って決めます。
|
68
68
|
例えば、Unity上のメッセージとして表示するならtwoLapTimeMessageのように命名すべきです。
|
69
|
-
名は体を表す
|
69
|
+
名は体を表すという言葉があります。変数の命名も同じです。
|
70
70
|
|
71
71
|
では、LapTimeCount や MeasuredForEachLap という命名はどうでしょうか?
|
72
72
|
|
5
誤字
answer
CHANGED
@@ -74,7 +74,7 @@
|
|
74
74
|
|
75
75
|
> 同じ処理を何回も書くのはダメだと聞いた
|
76
76
|
|
77
|
-
if (player.lapCount == 1) から始まるif
|
77
|
+
if (player.lapCount == 1) から始まるif文の各分岐も同じような処理をしていますね。
|
78
78
|
変数名にOne,Two,Threeという単語は通常つけません。配列やリストのようなコレクションに変えることでこの分岐は無くすことが出来ます。
|
79
79
|
|
80
80
|
# 余談③
|
4
文章の修正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
質問は解決されていますが、outを使わなくても解決できるので回答します。
|
1
|
+
質問は解決されていますが、outを使わなくても解決できると判断したので回答します。
|
2
2
|
|
3
3
|
> oneLapTimeStoring,twoLapTimeStoring,threeLapTimeStoringがnull と出ます。
|
4
4
|
何故でしょうか?
|
3
文章の修正
answer
CHANGED
@@ -56,7 +56,7 @@
|
|
56
56
|
|
57
57
|
さて、outを使う手段と使わない手段の2つが掲示されましたが、可能ならoutキーワードは使わない方が良いと私は思います。理由はoutで渡された値の変更が呼び出し元にも反映される訳なので、どんな値が返ってくるか人が想像しづらくなるためです。
|
58
58
|
|
59
|
-
もっとざっくり書くなら、**プログラムが複雑になるから** です。
|
59
|
+
もっとざっくり書くなら、**プログラムが複雑になりやすくなるから** です。
|
60
60
|
プログラムは可能な限りシンプルに書きましょう。
|
61
61
|
|
62
62
|
# 余談①
|
2
追記
answer
CHANGED
@@ -74,8 +74,8 @@
|
|
74
74
|
|
75
75
|
> 同じ処理を何回も書くのはダメだと聞いた
|
76
76
|
|
77
|
-
if (player.lapCount == 1) から始まる分
|
77
|
+
if (player.lapCount == 1) から始まるif分の各分岐も同じような処理をしていますね。
|
78
|
-
変数名にOne,Two,Threeという単語は通常つけません。配列に変えることでこの分岐は無くすことが出来ます。
|
78
|
+
変数名にOne,Two,Threeという単語は通常つけません。配列やリストのようなコレクションに変えることでこの分岐は無くすことが出来ます。
|
79
79
|
|
80
80
|
# 余談③
|
81
81
|
|
@@ -84,4 +84,7 @@
|
|
84
84
|
(WhatではなくWhyを書く)
|
85
85
|
|
86
86
|
・・・みたいなノウハウは、(私は回し者ではありませんが)
|
87
|
-
[リーダブルコード](https://www.oreilly.co.jp/books/9784873115658/)のような書籍を購入して学ぶべきだと思います。
|
87
|
+
[リーダブルコード](https://www.oreilly.co.jp/books/9784873115658/)のような書籍を購入して学ぶべきだと思います。
|
88
|
+
|
89
|
+
とはいえ、学習目的のコードならその場限りでしか使わないでしょうから、メモ代わりにWhatを書いても私は良いのではないかと思います。
|
90
|
+
(Um_kok さんが掲示したソースがどちらであるかは分かりませんが)
|
1
追記
answer
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
なので、timeStoringの値を変更してもoneLapTimeStoring, twoLapTimeStoring, threeLapTimeStoringには反映されません。
|
9
9
|
|
10
10
|
oneLapTimeStoring, twoLapTimeStoring, threeLapTimeStoringを変更するにはそれ等に対して代入しなければいけません。
|
11
|
-
また、LapTimeCountは各ラップに対応する文字列を生成しているようなので、その
|
11
|
+
また、LapTimeCountメソッドは各ラップに対応する文字列を生成しているようなので、そのメソッド内にはoneLapTimeStoring, twoLapTimeStoring, threeLapTimeStoringという具体的な回数を記載する訳にはいきません。
|
12
12
|
|
13
13
|
ということは、作成した文字列を呼び出し元に戻してから代入すれば良いだけです。
|
14
14
|
下記のようにメソッドの戻り値をvoidからstringに変更しましょう。
|
@@ -62,10 +62,14 @@
|
|
62
62
|
# 余談①
|
63
63
|
Storingという単語はありません。Stringです。また、型を見ればstringと分かるので、わざわざつける必要はありません。
|
64
64
|
|
65
|
+
すると、twoLapTime というような名前になりますが、私ならその変数名を見てstringではなくDateTimeの型であると勘違いをすると思います。
|
66
|
+
|
65
67
|
変数名はその変数の使われる目的に沿って決めます。
|
66
68
|
例えば、Unity上のメッセージとして表示するならtwoLapTimeMessageのように命名すべきです。
|
67
69
|
名は体を表すようという言葉があります。変数の命名も同じです。
|
68
70
|
|
71
|
+
では、LapTimeCount や MeasuredForEachLap という命名はどうでしょうか?
|
72
|
+
|
69
73
|
# 余談②
|
70
74
|
|
71
75
|
> 同じ処理を何回も書くのはダメだと聞いた
|