📅  最后修改于: 2020-11-01 03:03:42             🧑  作者: Mango
C#提供了调用者信息属性,以获取有关调用者方法的信息。通过使用“来电者信息”属性,我们可以获得以下信息。
此信息有助于跟踪和调试源代码。
要实现此功能,我们需要在应用程序中使用System.Runtime.CompilerService命名空间。该名称空间包含以下呼叫者信息属性。
Type | Attribute | Description |
---|---|---|
String | CallerFilePathAttribute | It is used to get full path of the source file that contains the caller. |
Integer | CallerLineNumberAttribute | It is used to get line number in the source file at which the method is called. |
String | CallerMemberNameAttribute | It is used to get caller method name. |
我们要调用的方法必须使用可选参数。这些可选参数设置为默认值。 C#编译器在方法执行期间将调用者信息设置为这些参数。
让我们来看一个例子。
using System;
using System.Runtime.CompilerServices;
namespace CSharpFeatures
{
class CallerInfoExample
{
static void Main(string[] args)
{
// Calling method
show();
}
// We must specify optional parameters to get caller info.
static void show([CallerMemberName] string callerName = null,
[CallerFilePath] string callerFilePath = null,
[CallerLineNumber] int callerLine = -1)
{
Console.WriteLine("Caller method Name: {0}", callerName);
Console.WriteLine("Caller method File location: {0}", callerFilePath);
Console.WriteLine("Caller method Line number: {0}", callerLine);
}
}
}
输出量
Caller method Name: Main
Caller method File location: f:\C#\C# Features\CSharpFeatures\CallerInfoExample.cs
Caller method Line number: 10