การ 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");
}
}
}
Sign up here with your email

ConversionConversion EmoticonEmoticon