using System;
namespace Chapter01All
{
class StringChangeInt
{
int kekkaInt;
String kekkaString;
bool kekkaBool;
public void SetKekkaInt(int ki)
{
kekkaInt = ki;
}
public int GetKekkaInt()
{
return kekkaInt;
}
public String PkekkaString
{
get
{
return kekkaString;
}
set
{
kekkaString = value;
}
}
public Boolean PkekkaBool
{
get
{
return kekkaBool;
}
set
{
kekkaBool = value;
}
}
}
interface ChangeInt
{
StringChangeInt ConvRoutine(String str);
}
class InterFaceSample: ChangeInt
{
public StringChangeInt ConvRoutine(String s)
{
StringChangeInt stci = new StringChangeInt();
int w = 0;
for(int i=0; i<s.Length; i++)
{
int work = s[i] - '0';
if(!(work <= 0 & work >= 9)){
stci.SetKekkaInt(-1);
stci.PkekkaString = s;
stci.PkekkaBool = false;
return stci;
}
w = (w * 10) + s[i] - '0';
}
stci.SetKekkaInt(w);
stci.PkekkaString = "";
stci.PkekkaBool = true;
return stci;
}
}
class InterfaceSample
{
static void Main()
{
InterFaceSample obj = new InterFaceSample();
StringChangeInt w = new StringChangeInt();
w = obj.ConvRoutine("100");
if (w.PkekkaBool)
Console.WriteLine(w.GetKekkaInt());
else
Console.WriteLine(w.PkekkaString);
w = obj.ConvRoutine("ABC");
if (w.PkekkaBool)
Console.WriteLine(w.GetKekkaInt());
else
Console.WriteLine(w.PkekkaString);
}
}
}
class StringChangeIntはメンバー変数が3個あります。前はpublicにしてましたが、通常privateが薦められてますので、そうすると、直接アクセスが出来なくなります。メソッドでやるとSetKekkaIntとGetKekkaIntdですし、プロパティでやるとPkekkaStringとPkekkaBoolです。今回はこれ以上は止めておきます。