c#之System.Reflection.MethodBase
關於此類的官方連結:
測試程式碼如下:
實施
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
namespace testconstructinternal
{
public class Class1
{
public int name=3;
public void Print(int vname)
{
name = vname;
Console.WriteLine(Convert.ToString(name));
//獲取當前正在執行方法的名稱(透過反射),必須要寫在正在執行方法的程式碼塊中,而不是其它的程式碼塊
Console.WriteLine(MethodBase.GetCurrentMethod().Name);//獲取當前正在執行方法的名稱
//getparameters獲取當在執行方法的引數的相關資訊
ParameterInfo[] pi=MethodBase.GetCurrentMethod().GetParameters();
//i表示parameterinfo陣列中可能會儲存多個方法引數,每個方法引數會有多個不同的屬性,故用陣列及length迴圈
for (int i = 0; i < pi.Length; i++)
{
Console.WriteLine(pi.GetType().Name);//方法引數的型別
Console.WriteLine( pi.GetValue(i).ToString());//方法引數的名稱
}
Console.ReadKey();
//AppDomain.CurrentDomain.BaseDirectory.
}
}
}
呼叫程式碼
using System;
using System.Reflection;//反射
using testconstructinternal;
public class FieldInfoClass
{
public int myField1 = 0;
protected string myField2 = null;//保護成員,class and subclass can access
public static void Gx()
{
;
}
public static void Main() //static main method
{
//學習system.reflection.methodbase類的用法
//methodbase 用於獲取方法及建構函式的資訊
Class1 c1 = new Class1();
c1.Print(34);
}
}
小結:反射很複雜,要努力學習,以適應工作
測試程式碼如下:
實施
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
namespace testconstructinternal
{
public class Class1
{
public int name=3;
public void Print(int vname)
{
name = vname;
Console.WriteLine(Convert.ToString(name));
//獲取當前正在執行方法的名稱(透過反射),必須要寫在正在執行方法的程式碼塊中,而不是其它的程式碼塊
Console.WriteLine(MethodBase.GetCurrentMethod().Name);//獲取當前正在執行方法的名稱
//getparameters獲取當在執行方法的引數的相關資訊
ParameterInfo[] pi=MethodBase.GetCurrentMethod().GetParameters();
//i表示parameterinfo陣列中可能會儲存多個方法引數,每個方法引數會有多個不同的屬性,故用陣列及length迴圈
for (int i = 0; i < pi.Length; i++)
{
Console.WriteLine(pi.GetType().Name);//方法引數的型別
Console.WriteLine( pi.GetValue(i).ToString());//方法引數的名稱
}
Console.ReadKey();
//AppDomain.CurrentDomain.BaseDirectory.
}
}
}
呼叫程式碼
using System;
using System.Reflection;//反射
using testconstructinternal;
public class FieldInfoClass
{
public int myField1 = 0;
protected string myField2 = null;//保護成員,class and subclass can access
public static void Gx()
{
;
}
public static void Main() //static main method
{
//學習system.reflection.methodbase類的用法
//methodbase 用於獲取方法及建構函式的資訊
Class1 c1 = new Class1();
c1.Print(34);
}
}
小結:反射很複雜,要努力學習,以適應工作
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-718489/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C#之helloworldC#
- C#之介面C#
- c#之delegateC#
- c#之eventC#
- c#之structC#Struct
- C#之Equals與==C#
- C#之變數C#變數
- C#之非同步C#非同步
- c#之hashtable類C#
- c#之datatable(1)C#
- c#之datarelation(1)C#
- c# interface介面之C#
- C#之快取C#快取
- C# 之 Linq to XmlC#XML
- C# 之 Hashtable 與 DictionaryC#
- C#之全域性觀C#
- c#之oracledataAdapter類C#OracleAPT
- c#之Serializable_internalC#
- c#之delegate和eventC#
- c# winform 之fontdialogC#ORM
- c#之轉義字元C#字元
- c#之IntPtr結構C#
- C#速成(之四) (轉)C#
- C#入門之C#特點及HelloWorld程式C#
- C#基礎之介面(6)C#
- C# 之委託與事件C#事件
- c#進階之泛型C#泛型
- C#之泛型詳解C#泛型
- C#之Abstract、Vitrual、OverrideC#IDE
- C#之拆箱,裝箱C#
- C#泛型類之LISTC#泛型
- C# 之泛型詳解C#泛型
- c#之splitcontainer類(介面)C#AI
- c#之menustrip小記(1)C#
- c#之readonly小記C#
- c#之泛型小記C#泛型
- 【C#之Try……Catch例項】C#
- c#之回撥函式C#函式