【发布时间】:2014-12-23 22:47:37
【问题描述】:
我有几节课。让我们说:
public class A
{
public void SomeAction()
{
Debug.Write("I was declared in class: and my name is:");
}
}
和
public class B
{
public static A myClass = new A();
}
public class C
{
public static A myClass = new A();
}
public class D
{
public static A myClass = new A();
}
我想要 A 类中的“SomeAction”做的是打印出它是在哪个类中初始化的。
例如,在我称为C.myClass.SomeAction(); 的另一个类中,它会打印出“我在C 类中被声明,我的名字是myClass”
我希望这是有道理的。
我这样做的原因是为了在自动化测试中进行调试。我明白这不是最好的做事方式,而是业务的要求。
【问题讨论】:
-
您可以在包含“初始化位置”字符串的类上添加一个属性,然后在实例化对象后立即设置该属性。不确定是否有更好的方法,但这是一种方法。 :P
-
或者你可以使用继承。代替 B、C 和 D 具有 A 的实例,它们可以是 A 的实例。
-
“我明白这不是最好的做事方式,而是业务的要求。” - 我喜欢那条线 :-)
-
这在静态方法中不起作用
-
没关系它不应该是静态的
标签: c# class inner-classes