[C#] การ Conversion Type



การ Implicit แปลงตาม user-defined type เช่น int  iTotal = bVal1 + bVal2;

การ Explicit แปลงโดยการ cast type เช่น byte bTotal = (byte)(bVal1 + bVal2);

การ Parse คือ string -> numeric เช่น double dVal = double.Parse(sVal);

การ Convert คือ type1 -> type2 เช่น long lVal = Convert.ToInt64(dVal);



โค้ด

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void buttonImplicit_Click(object sender, EventArgs e)
        {
            //Implicit แปลงตาม user-defined type 
            byte bVal1 = 42;
            byte  bVal2 = 17;
            int  iTotal = bVal1 + bVal2;
            MessageBox.Show(iTotal.ToString(), "Implicit Conversion");
        }

        private void buttonExplicit_Click(object sender, EventArgs e)
        {
            //Explicit แปลงโดยการ cast type
            byte bVal1 = 42;
            byte bVal2 = 17;
            byte bTotal = (byte)(bVal1 + bVal2);    //byte bTotal = bVal1 + bVal2; ไม่ได้ เกิด error
            MessageBox.Show(bTotal.ToString(), "Explicit Conversion");
            
            string strOut = "";
            
            long lVal1  = 20000;
            int iVal1   = (int)lVal1;               //long -> int อันนี้ยัง ok 
            strOut += "iVal1 = " + iVal1.ToString("#,###.##") + " (20,000)\n";

            long lVal2  = 40000000000;
            int iVal2   = (int)lVal2;               //long -> int ทำให้ loss data เพราะ int เก็บค่าได้ไม่ถึง 4 หมื่นล้าน
            strOut += "iVal2 = " + iVal2.ToString("#,###.##") + " (40,000,000,000)\n";

            float fVal3 = 12.5f;
            int iVal3 = (int)fVal3;                 //float -> int ตัดหลังทศนิยมออกไปเลย
            strOut += "iVal3 = " + iVal3.ToString("#,###.##") + " (12.5)\n";

            MessageBox.Show(strOut, "Explicit Conversion");
        }

        private void buttonParse_Click(object sender, EventArgs e)
        {
            //การ Parse คือ string -> numeric
            string strOut = "";
            string sVal = "17.21";
            double dVal = double.Parse(sVal);
            strOut += "dVal = " + dVal.ToString() + "\n";
            MessageBox.Show(strOut, "Parse Method");
        }

        private void buttonConvert_Click(object sender, EventArgs e)
        {
            //การ Convert คือ type1 -> type2
            string strOut = "";
            double dVal = 24.557;
            long lVal = Convert.ToInt64(dVal);   //double -> long (long คือ 64-bit signed integer)
            strOut += "lVal = " + lVal.ToString() + " (24.557)\n";
            MessageBox.Show(strOut, "Convert Method");
        }
    }
}


Previous
Next Post »