回答編集履歴
1
改訂
answer
CHANGED
@@ -144,4 +144,92 @@
|
|
144
144
|
}
|
145
145
|
}
|
146
146
|
|
147
|
+
```
|
148
|
+
|
149
|
+
---追記
|
150
|
+
やろうとしていることはオーバーロードってより、ジェネリクスで実現したほうがいいように思います(学習ってことを考えると継承でもいいのかも?どっちにしてもオーバーロードだと課題にあってない気がする)。随所にisInt(旧integre)が出てくるのがその原因。そのせいで、インデントが多すぎる、良くないコードになってしまっている。
|
151
|
+
とりあえず着想をかえない範囲で修正しました。
|
152
|
+
intかどうかの質問を前にだし、変数を減らして、数のチェックをやって、変数名を整えました。
|
153
|
+
今の学習段階でもこれくらいになるといいのかなと思います。
|
154
|
+
```csharp
|
155
|
+
using System;
|
156
|
+
|
157
|
+
namespace ConsoleApp3
|
158
|
+
{
|
159
|
+
internal class Overload
|
160
|
+
{
|
161
|
+
private readonly double ans;
|
162
|
+
public void Show() => Console.WriteLine($"ans = {ans}");
|
163
|
+
|
164
|
+
public Overload(int x, int y) => ans = x + y;
|
165
|
+
|
166
|
+
public Overload(double x, double y) => ans = x + y;
|
167
|
+
}
|
168
|
+
|
169
|
+
class Start
|
170
|
+
{
|
171
|
+
public static void Main()
|
172
|
+
{
|
173
|
+
var isInt = false;
|
174
|
+
var isDouble = false;
|
175
|
+
var intArray = new int[2];
|
176
|
+
var doubleArray = new double[2];
|
177
|
+
var x = 0;
|
178
|
+
var xd = 0.0;
|
179
|
+
|
180
|
+
while (!isInt && !isDouble)
|
181
|
+
{
|
182
|
+
Console.WriteLine("int or double ?(1 or 2)");
|
183
|
+
var select = Console.ReadLine();
|
184
|
+
|
185
|
+
switch (select)
|
186
|
+
{
|
187
|
+
case "1":
|
188
|
+
Console.WriteLine("You selected 1");
|
189
|
+
isInt = true;
|
190
|
+
break;
|
191
|
+
|
192
|
+
case "2":
|
193
|
+
Console.WriteLine("You selected 2");
|
194
|
+
isDouble = true;
|
195
|
+
break;
|
196
|
+
|
197
|
+
default:
|
198
|
+
Console.WriteLine("Incorrect input");
|
199
|
+
break;
|
200
|
+
}
|
201
|
+
}
|
202
|
+
|
203
|
+
for (var i = 0; i < 2; i++)
|
204
|
+
{
|
205
|
+
Console.WriteLine("Please enter the digit");
|
206
|
+
var numStr = Console.ReadLine();
|
207
|
+
|
208
|
+
if (isInt ? !int.TryParse(numStr, out x) : !double.TryParse(numStr, out xd))
|
209
|
+
{
|
210
|
+
Console.WriteLine("Incorrect input");
|
211
|
+
i--;
|
212
|
+
continue;
|
213
|
+
}
|
214
|
+
if (isInt)
|
215
|
+
{
|
216
|
+
intArray[i] = x;
|
217
|
+
}
|
218
|
+
if (isDouble)
|
219
|
+
{
|
220
|
+
doubleArray[i] = xd;
|
221
|
+
}
|
222
|
+
}
|
223
|
+
if (isInt)
|
224
|
+
{
|
225
|
+
new Overload(intArray[0], intArray[1]).Show();
|
226
|
+
}
|
227
|
+
if (isDouble)
|
228
|
+
{
|
229
|
+
new Overload(doubleArray[0], doubleArray[1]).Show();
|
230
|
+
}
|
231
|
+
Console.ReadKey();
|
232
|
+
}
|
233
|
+
}
|
234
|
+
}
|
147
235
|
```
|