2009年5月小记(StackTrace, Ticks)

1、如何用反射得到调用当前方法的方法名称?

StringBuilder sb  =   new  StringBuilder();
StackTrace st 
=   new  StackTrace();
foreach  (StackFrame sf  in  st.GetFrames())
{
    sb.Append(sf.GetMethod().Name);
    sb.Append(
" , " );
}
return  sb.ToString();

通常第一个StackFrame就是当前方法:

MethodInfo method  =  (MethodInfo)( new  StackTrace().GetFrame( 0 ).GetMethod());
return  method.Name;


return   new  StackFrame( 0 ).GetMethod().Name;


2、DateTime.Now.Ticks及long转换

# long实际上就一个Int64: long lg = new long(); 或 long lg = new Int64();

# DateTime.Now.Ticks的值为long类型。

# DateTime.Now.Ticks.ToString("x", CultureInfo.InstalledUICulture) 转换为十六进制表示

# long.Parse(longstr, NumberStyles.HexNumber) 把十六进制表示转换为long类型

# new DateTime(DateTime.Now.Ticks) 或 new DateTime(long) 把一个long类型转换为DateTime时间表示

# new TimeSpan(DateTime.Now.Ticks - ClientStartTime).TotalMilliseconds 计算执行时间差

 3 、HashSet<T>使用

 

 


 

你可能感兴趣的:(stack)