1、問題描述java
java有反射機制,C#也有反射機制,在C#中typeof關鍵字用於獲取類型的System.Type對象,該對象的GetMethods()方法能夠獲得類型中定義的方法對象的計集合,調用方法集合中每一個方法對象的GetParameters()能夠獲得每一個方法的參數集合,可是須要引用Reflection命名空間。spa
獲取System.Type對象有兩種方法:第一種是用typeof關鍵字,第二種是用對象引用調用GetType()方法.net
一、System.Type type = typeof(System.Int32); //參數是一種系統類型code
二、 string str= 「test」; orm
System.Type type = str.GetType(); //用對象引用調用GetType()方法對象
2、解決步驟blog
一、在代碼中引用Reflection命名空間input
using System.Reflection;string
二、能夠用typeof關鍵字,也能夠用GetType()方法獲取類的內部結構it
3、代碼演示
一、獲取String類的的全部方法和參數並顯示。
代碼:
————————————————
版權聲明:本文爲CSDN博主「tongyuehong」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。
原文連接:https://blog.csdn.net/tongyuehong137/article/details/51393309
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; using System.Reflection; namespace test1 { public partial class Form7 : Form { public Form7() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //Type type = typeof(System.String); String str = "test"; Type type = str.GetType(); foreach (MethodInfo method in type.GetMethods()) { out_rtb.AppendText("方法名稱:"+method.Name+Environment.NewLine); foreach (ParameterInfo param in method.GetParameters()) { out_rtb.AppendText("\t參數:" + param.Name + Environment.NewLine); } } } } }
二、提示錯誤信息後,將全部CheckBox控件內容清空
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; using System.Reflection; namespace test1 { public partial class Form6 : Form { public Form6() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { byte input1,input2; if (byte.TryParse(input1_tbx.Text, out input1) && byte.TryParse(input2_tbx.Text, out input2)) { try { checked { input1 += input2; } result_tbx.Text = input1.ToString(); } catch (OverflowException ex) { MessageBox.Show(ex.Message, "錯誤信息"); } } else { MessageBox.Show("請輸入小於255的數字!", "提示信息"); } //清空輸入信息 foreach (Control c in Controls) { if (c.GetType() == typeof(TextBox)) { ((TextBox)c).Clear(); } } } } }