カテゴリー
C

独習C#第3版、前の例を変更しました。メンバー変数をprivate、メソッドとプロパティで変更する。

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です。今回はこれ以上は止めておきます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

inserted by FC2 system