從工具箱中拖四個Label控制項到介面上,並分別修改Text屬性為"姓名:、年齡:、結果:和訊息",注意最後一個Label(就是Text屬性為"訊息"這個Label控制項的NAME屬性);
小天:這麼多資料類型,它們之間一定會有混合使用的時候。比如我們讓使用者輸入使用者名稱和年齡,然後顯示出結果。
老田:你說的這個最好使用WinForm來做。因為這隻是第二次做,我們把步驟說下:
1.建立一個名為"類型轉換和裝拆箱"的Windows傳統型應用程式項目;
2.從工具箱中拖四個Label控制項到介面上,並分別修改Text屬性為"姓名:、年齡:、結果:和訊息",注意最後一個Label(就是Text屬性為"訊息"這個Label控制項的NAME屬性);
3.拖兩個TextBox控制項到介面上,並分別將這兩個控制項的NAME屬性修改為tb_name,tb_age;
4.拖一個Button控制項,將Text屬性修改為提交;
5.最終效果2-17
圖2-17
6.上面的步驟做好之後,雙擊"提交按鈕",為此按鈕產生Click事件;
7.代碼如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace類型轉換和裝拆箱
{
publicpartialclassForm1 : Form
{
public Form1()
{
InitializeComponent();
}
///<summary>
///雙擊提交按鈕產生事件
///</summary>
///<param name="sender">觸發事件的對象,這類事件中當然就是當前對象</param>
///<param name="e">事件所附帶的訊息</param>
privatevoid button1_Click(object sender, EventArgs e)
{
//下面幾行代碼是我們寫的,其它的除注釋外都是自動產生的,注意下面兩次類型轉換
//因為tb_name的Text屬性也是string類型,所以不用類型轉換即可直接賦值
string name = tb_name.Text;
//使用Convert類的ToInt32方法將tb_age中接收到的string類型的值轉換為int類型
int age = Convert.ToInt32(tb_age.Text);
//msg等於 name 加上 int類型的age,因為類型不同,所以將age轉換為string類型
string msg = name + age.ToString();
//修改用來顯示訊息的Label4的Text屬性
label4.Text = msg;
}
}
}
8.運行程式(忘記了就回去看第一章);
9.最終運行結果2-18
圖2-18
小天:怪哉,我跟你示範的完全一樣,為什麼我的就是錯的呢?你看1-19
圖2-19
老田:它能不錯嘛?你輸入的30可以轉換為整形,對吧?可"30歲",你說這個C#怎麼幫你轉換呢?因為無法轉換,所以就出錯了。這個是資料類型轉換中常出現的事。
小天:哪我咋知道什麼情況可以轉換,什麼情況不可以轉換啊?
老田:資料類型的轉換當然是有規律的了。從轉換形式上來看,可將資料類型分為兩種,不需要有文法申明的隱式轉換和需要明確藉助其它類或者方法來實現的顯示轉換。
從轉換類型上來看,可分為擴大轉換和縮小轉換,所謂擴大,就是範圍、位元小的類型轉換為大的,比如byte類型轉換為int類型。縮小類型反之。
本文為天轟穿原著,轉載請註明出處及作者!