c# - C#类是否知道实例化了哪个文件?

标签 c#

是否可以告诉哪个文件在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/

相关文章:

c# - 如何在文档注释中引用数组类型

c# - await 仍然阻塞当前的 UI 线程

c# - Large Binary (byte[]) 通过WCF传输文件

c# - 在 C# 项目中使用资源

c# - 如何使用.Net system.drawing.drawstring编写从右到左的字符串(项目是一个dll)?

c# - 如何实现网页的实时数据

c# - 在通过 EF6 上的 Code First 实现创建的 MySql 表上创建 PARTITION

c# - Select LINQ 的最佳返回类型是什么

c# - 库应该公开辅助类吗?

c# - 为什么 C#/VS 没有像 Java/Eclipse 这样的自动构建功能?