public class Pass//叫PASS類好了
{
private int s;//宣告私用整數型態s 給 speed用來回傳速度的容器
private string R="";//放字串
public void Run()//執行判斷方法
{
if (s > 65)//此方法 取s值做判斷
R = "超速";// 判斷後將決定R的決定
else
R = "沒超數";
}
public int speed//建立公用 整數型態
{
get//如果SPEED=輸入的數字 將回傳 s
{
return s;//要回傳s
}
set
{
if (value >= 0 && value <= 65)
{
s = value;//
}
else if (value > 66)
{
s = 66;//只要超過66 s值就是66了
}
}
}
public string RESULT//宣告公用類別回傳R用的
{
get
{
Run();
return R;
}
}
}
再來 我們做一個BUTTON模擬執行 是否成功吧!
BUTTON CODE如下
private void button3_Click(object sender, EventArgs e)
{
int a=120;
Pass HW = new Pass();//HW是 PASS類
HW.speed = a;//假如時數120KM 把值給 HW中的PASS
HW.Run();// RUN方法 會依據SPEED的值做IF-ELSE判斷
//最後再將 判斷結果傳回RESULT
MessageBox.Show("目前時數"+a+"KM"+"超過"+HW.speed + "KM" + HW.RESULT);
}
MESSAGEBOX SHOW出 目前時數120 超過66超速
再來是本章重點 用typeof來看看 PASS中有啥!
private void btn_Get_Click(object sender, EventArgs e)
{
Type type = typeof(Pass);//取得pass類型的Type物件
foreach (MethodInfo method in type.GetMethods())//搜尋pass類別中
//定義的所有"公共"方法
//指定給 method 型態為Methodinfo
{
rtbox_text.AppendText("方法名稱:" + method.Name + Environment.NewLine);//輸出方法名稱
foreach (ParameterInfo parameter in method.GetParameters())//深度
//搜尋公共方法中所有參數
{
rtbox_text.AppendText(
" 參數:" + parameter.Name + Environment.NewLine);//輸出參
//數名稱
}
}
}
再來 利用GetType() 取型態
private void button1_Click(object sender, EventArgs e)
{
string TR = "";//拿來裝搜尋結果
foreach (Control c in Controls)//逐一搜尋控控制項
/*關於controls為何可搜尋WINDOSFORM中的控制項
*
*Control 可以當做是控制項集合的父代。
* 例如,將數個控制項加入 Form 時,
* 每一個控制項都是指派給表單之
* Controls 屬性的 Control.ControlCollection 成員
* (衍生自 Control 類別)。
* 來自於MSDN
*/
{
TR += c+"\n";
if (c.GetType() == typeof(Label))
{
((Label)c).Text = "TT";
TR += "找到了" + c.GetType() + "修改Text插入TT" + "\n";
}
else
{
TR+="不是你要的控制項LABLE"+"\n";
}
richTextBox1.Text = TR;//SHOW出來!
}
}
richtextbox輸出
如下System.Windows.Forms.RichTextBox, Text:
不是你要的控制項LABLE
System.Windows.Forms.Label, Text: label1
找到了System.Windows.Forms.Label修改Text插入TT
System.Windows.Forms.Button, Text: 建構超數類別測試
不是你要的控制項LABLE
System.Windows.Forms.Button, Text: button2
不是你要的控制項LABLE
System.Windows.Forms.TextBox, Text:
不是你要的控制項LABLE
System.Windows.Forms.Button, Text: 搜尋
不是你要的控制項LABLE
System.Windows.Forms.TextBox, Text:
不是你要的控制項LABLE
System.Windows.Forms.RichTextBox, Text:
不是你要的控制項LABLE
System.Windows.Forms.Button, Text: 取得
不是你要的控制項LABLE
此時 FROM上的LABLE 變成 TT
相當好用 可以搜尋 又可以 改變他
沒有留言:
張貼留言