在C#中編程,對參數類型不象VB中那樣寬容,不可避免的要進行各種類型間的相互轉換,如在文本控件中輸入的數據在參與計算時必須轉換為相應的數值類型才能進行計算。通常我們可以用以下三種方法來進行:
1、強制類型轉換
private void tst()
{
string t_string="1.4532";
double t_rtn;
t_rtn=Math.Cos((double)t_string);
...
}
2、Parse方法
double、string等類都具有一個名為Parse的方法,我們可用其將其它類型的變量轉換為本類型:
private void button1_Click(object sender, System.EventArgs e)
{
double sp_x,sp_y,dis,azm,p_x,p_y;
string Alpha;string[] azTmp;
double Ad,Am,As; // 度、分、秒
Alpha=az.Text;
azTmp=Alpha.Split('.');
Ad=Convert.ToDouble(azTmp[0]);
Am=Convert.ToDouble(azTmp[1].Substring(0,2));
As=Convert.ToDouble(azTmp[1].Substring(2,2));
//Dbg.Text =Convert.ToString(Ad) + " " + Convert.ToString(Am) + " " +Convert.ToString(As);
sp_x=double.Parse(sx.Text);
sp_y=double.Parse(sy.Text);
dis=double.Parse(d.Text);
azm=(Ad+Am/60.0+As/3600) * Math.PI/180;
p_x=(double)System.Math.Cos( azm) * dis+sp_x;
p_y=(double)System.Math.Sin( azm) * dis+sp_y;
px.Text=p_x.ToString();
py.Text=p_y.ToString ();
point3 p3=new point3();
p3.x=1.256;p3.y =2.356;p3.h=100;
Dbg.Text=p3.ToString();
}
3、Convert類
private void button1_Click(object sender, System.EventArgs e)
{
double sp_x,sp_y,dis,azm,p_x,p_y;
string Alpha;string[] azTmp;
double Ad,Am,As; // 度、分、秒
Alpha=az.Text;
azTmp=Alpha.Split('.');
Ad=Convert.ToDouble(azTmp[0]);
Am=Convert.ToDouble(azTmp[1].Substring(0,2));
As=Convert.ToDouble(azTmp[1].Substring(2,2));
//Dbg.Text =Convert.ToString(Ad) + " " + Convert.ToString(Am) + " " +Convert.ToString(As);
sp_x=double.Parse(sx.Text);
sp_y=double.Parse(sy.Text);
dis=double.Parse(d.Text);
azm=(Ad+Am/60.0+As/3600) * Math.PI/180;
p_x=(double)System.Math.Cos( azm) * dis+sp_x;
p_y=(double)System.Math.Sin( azm) * dis+sp_y;
px.Text=p_x.ToString();
py.Text=p_y.ToString ();
point3 p3=new point3();
p3.x=1.256;p3.y =2.356;p3.h=100;
Dbg.Text=p3.ToString();
}