是否可以告诉哪个文件在C#中实例化了一个类?
例如,如果我有Page1.cs和Page2.cs,myclass.cs中的构造函数可以知道哪个页面从中创建了对象吗?
最佳答案
您可以通过“ Caller Information”属性来执行此操作。本质上,您是在类的构造函数上创建一些额外的可选参数,并向它们应用一些特殊属性,然后编译器会自动为您填充详细信息。例如:
using System.Runtime.CompilerServices;
public MyClass
{
public MyClass(
[CallerMemberName] string memberName = "",
[CallerFilePath] string sourceFilePath = "",
[CallerLineNumber] int sourceLineNumber = 0)
{
...
}
}
您只需要将其称为:
var instance = new MyClass();
编译器将自动填写调用者的成员名称,文件路径和行号。
关于c# - C#类是否知道实例化了哪个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49964067/