using System;
namespace Chapter01All
{
class StringChangeInt
{
public int kekkaInt;
public String kekkaString;
public bool kekka;
}
interface ChangeInt
{
StringChangeInt Routine(String str);
String NotConv(String str);
}
class InterFaceSample: ChangeInt
{
public StringChangeInt Routine(String s)
{
StringChangeInt stci = new StringChangeInt();
int w = 0;
for(int i=0; i<s.Length; i++)
{
int work;
work = s[i] - '0';
if(!(work <= 0 & work >= 9)){
stci.kekkaInt = -1;
stci.kekkaString = s;
stci.kekka = false;
return stci;
}
w = (w * 10) + s[i] - '0';
}
stci.kekkaInt = w;
stci.kekkaString = "";
stci.kekka = true;
return stci;
}
public String NotConv(String str)
{
return str;
}
}
class InterfaceSample
{
static void Main()
{
InterFaceSample obj = new InterFaceSample();
StringChangeInt w = new StringChangeInt();
w = obj.Routine("100");
if (w.kekka)
Console.WriteLine(w.kekkaInt);
else
Console.WriteLine(w.kekkaString);
w = obj.Routine("ABC");
if (w.kekka)
Console.WriteLine(w.kekkaInt);
else
Console.WriteLine(w.kekkaString);
}
}
}
数値変換するとエラーになる場合と正常に変換できる場合いがあります。同じルーティンで処理するには、class StringChangeIntを使うしかないのか?本来であれば、というか、出力する場面でもif文を使わないで出来ればパーフェクトなんでしょうか?