C# 获取类内的类实例的实例名

C# 获取类内的类实例的实例名,c#,class,C#,Class,我有一门课是这样的: class Foo { } 我已经将一个实例初始化为 Foo _bar =new Foo(); 如何获取类Foo中变量的名称(\u bar,用于本问题)?\u bar不是类实例的名称。它是包含对该实例引用的变量的名称。实例不知道什么变量包含对它的引用,因此您不可能想做什么 如果希望实例具有名称,则必须向类中添加属性,例如: class Foo { public string Name { get; set; } } Foo b

我有一门课是这样的:

    class Foo
    {

    }
我已经将一个实例初始化为

    Foo _bar =new Foo();

如何获取类Foo中变量的名称(
\u bar
,用于本问题)?

\u bar
不是类实例的名称。它是包含对该实例引用的变量的名称。实例不知道什么变量包含对它的引用,因此您不可能想做什么

如果希望实例具有名称,则必须向类中添加属性,例如:

class Foo
{
    public string Name { get; set; }
}
Foo bar = new Foo { Name = "baz" };
然后像这样使用它:

class Foo
{
    public string Name { get; set; }
}
Foo bar = new Foo { Name = "baz" };
您可以在另一个类中包含“Foo _bar=new Foo();”,然后通过反射找到它,然后通过反射再次在类Foo中设置elementname属性

class Foo
{

public string ElementName {get; set;}


}

public class MyParent
{
Foo _bar =new Foo();

public MyParent()
{
//You can find Foo(s) here and then set ElementName of Each foo by reflection
}
}

如果对实例有多个引用(即
Foo\u bar 2=\u bar;
),您希望检索哪个名称?…或
List.Add(new Foo())@Josef我想我没有想到这一点,因为在我正在处理的这个特殊案例中,这不会发生。谢谢。。。我现在就是这样做的,我想知道是否有更简单的方法来做到这一点……代码片段没有解决任何问题,“bar”引用名称仍然无法以任何方式检索。这是非常基本的,抖动优化器最重要的工作之一是去掉对象引用变量的显式位置,并将它们存储在CPU寄存器中。使代码更快。@Hans,我想通过代码说明的是,您可以使用属性来保存实例的名称。当然,您是对的,无法从代码中的实例中获取名称
bar