teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

内容を修正させていただきました

2020/11/25 07:19

投稿

suzuki0707
suzuki0707

スコア1

title CHANGED
File without changes
body CHANGED
@@ -7,18 +7,24 @@
7
7
  ### 具体的な内容
8
8
 
9
9
  ```
10
+ __// 修正__
10
11
  public class A
11
12
  {
13
+ private int ListSize = 5;
14
+ private List<string> StrList;
15
+ private List<float> FloatList;
12
16
  public A(){
13
17
     初期化内容;
14
18
  }
15
19
 
16
20
  public A(string str){
17
-    初期化内容;
21
+    // リストの中身をListSize分作成する
22
+    for(var i=0;i<ListSize;i++) StrList.add("");
18
23
  }
19
24
 
20
25
  public A(float value){
21
-    初期化内容;
26
+    // リストの中身をListSize分作成する
27
+    for(var i=0;i<ListSize;i++) FloatList.add(0);
22
28
  }
23
29
 
24
30
  public Method(){
@@ -26,18 +32,21 @@
26
32
  }
27
33
 
28
34
  public Method(string str){
29
- A(string str)初期化内容使った処理;
35
+  // 実行毎に、最新から5つstr保持するStrListを作成する
36
+    
30
37
  }
31
38
 
32
39
  public Method(float value){
33
- A(float value)初期化内容使った処理;
40
+ // 実行毎に、最新から5つvalue保持するFloatListを作成する
34
41
  }
35
42
  }
36
43
  ```
37
-
38
44
  具体的な内容としては、現在同じ処理をそれぞれ型の違う(Vector3/Quaternion/float)数値へかけています。
39
45
  そこで処理を共通化したいのですが、処理を掛ける型分クラスを作成するのはどうかと思い上記のようなクラスを考えました。
40
46
  しかし、上記の例だとA(string str)でインスタンス化し、Method(string str)のメソッドが使えれば問題はないのですが引数を間違ってMethod(float value)を実行してしまうことがあると思います。
41
47
  自分だけでやっている場合にはこれでもいいかもしれませんが、多人数でこのクラスを使用する場合は問題になります。
42
48
  そこで使用したコンストラクタによりメソッドが有効化されるようなことはできないのか、そもそもクラスを分けるべきなのかと思い質問させていただきました。
43
- よろしくお願いいたします。
49
+ よろしくお願いいたします。
50
+
51
+ ※追記
52
+ 使用想定としては、unityでupdate()が呼ばれる毎に最新の値をListSize分常に持ちたいと考えています。