日期:2014-05-19  浏览次数:21027 次

记录错误日志的时候怎么获取当前的文件和行数
比如在C++中有__FILE__和__LINE__用来记录当前的文件和当前行数,不知道C#中是否有类似的东西记录当前的文件和当前的行数,如果还有方法能取出当前的函数是什么就更好了,谢谢

------解决方案--------------------
StackTrace st = new StackTrace();
StackFrame sf = st.GetFrame(0);
Console.WriteLine( " {0} ", sf.GetMethod());


*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

最新版本:20070212

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
------解决方案--------------------
try
{
using (StreamReader sr = new StreamReader( "txt.txt "))
{
String line;
int i = 0;
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine( "第{0}行 ", i);
i++;
}
}
}
catch (Exception e)
{
}

------解决方案--------------------
using System;
using System.Diagnostics;

class StackTraceSample
{
[STAThread]
static void Main(string[] args)
{
StackTraceSample sample = new StackTraceSample();
try
{
sample.MyPublicMethod();
}
catch (Exception)
{
// Create a StackTrace that captures
// filename, line number, and column
// information for the current thread.
StackTrace st = new StackTrace(true);
for(int i =0; i < st.FrameCount; i++ )
{
// Note that high up the call stack, there is only
// one stack frame.
StackFrame sf = st.GetFrame(i);
Console.WriteLine();
Console.WriteLine( "High up the call stack, Method: {0} ",
sf.GetMethod());

Console.WriteLine( "High up the call stack, Line Number: {0} ",
sf.GetFileLineNumber());
}
}
}

public void MyPublicMethod ()
{
MyProtectedMethod();
}

protected void MyProtectedMethod ()
{
MyInternalClass mic = new MyInternalClass();
mic.ThrowsException();
}

class MyInternalClass
{
public void ThrowsException()
{
try
{
throw new Exception( "A problem was encountered. ");
}
catch (Exception e)
{
// Create a StackTrace that captures filename,
// line number and column information.
StackTrace st = new StackTrace(true);
string stackIndent = " ";
for(int i =0; i < st.FrameCount; i++ )
{
// Note that at this level, there are four
// stack frames, one for each method invocation.
StackFrame sf = st.GetFrame(i);
Console.WriteLine();
Console.WriteLine(stackIndent + " Method: {0} ",
sf.GetMethod() );
Console.WriteLine( stackIndent + " File: {0} ",
sf.GetFileName());
Console.WriteLine( stackIndent + " Line Number: {0} ",
sf.GetFileLineNumber());
stackIndent += " ";