C# 如何以编程方式创建对象标识符

C# 如何以编程方式创建对象标识符,c#,object,instantiation,C#,Object,Instantiation,作为C语言的新手,我正在寻找一种解决方案,以编程方式实现类实例化的对象标识符 假设我们有一个名为MyClass的类,我们希望以编程方式创建以下实例: MyClass instganceName0 = new MyClass(); MyClass instganceName1 = new MyClass(); MyClass instganceName2 = new MyClass(); MyClass instganceName3 = new MyClass(); M

作为C语言的新手,我正在寻找一种解决方案,以编程方式实现类实例化的对象标识符

假设我们有一个名为MyClass的类,我们希望以编程方式创建以下实例:

  MyClass  instganceName0 = new MyClass();
  MyClass  instganceName1 = new MyClass();
  MyClass  instganceName2 = new MyClass();
  MyClass  instganceName3 = new MyClass();
  MyClass  instganceName4 = new MyClass();
我的问题是生成对象标识符instganceName0、instganceName1等的过程。。。以编程方式安装GANCENAME4

我编写了以下代码来生成字符串类型的标识符。但我不知道如何在循环中将它们用作对象标识符,以便在实例化过程中将它们用作对象标识符

非常感谢您的帮助

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string instganceName = "myClassInstance";
            string[] objectName = new string[4];
            for (int i = 0; i < 4; i++)
            {
                objectName[i] = instganceName + i.ToString();
            }

            var instganceName0 = new MyClass();
            var instganceName1 = new MyClass();
            var instganceName2 = new MyClass();
            var instganceName3 = new MyClass();
            var instganceName4 = new MyClass();
        }
    }

    class MyClass
    {

    }
}

虽然这没有意义,为什么你要这样命名,但为了解决你的问题,最好的办法是使用字典

for(i = 0; i < length; i++)
{
  dictionary.Add("instanceName" + i, new MyClass());
}

你没有。您使用数组或其他集合为什么关心变量名?这里的确切情况是什么?为什么不能使用数组或字典呢?List instganses=new List{new MyClass,new MyClass,new MyClass,new MyClass,new MyClass};这些不是对象标识符。它们是变量名,是编译时符号,不能在运行时生成。如果你仔细想想,这样做是没有用的,因为变量名的意义在于你可以在代码中引用它,而代码是在编译之前编写的:使用字典或列表来代替它。@NewbieInCSharp如果这是一个C代码生成器,你为什么要这样写呢,为什么你只能一行一行地以字符串的形式生成源代码?Dictionary Dictionary=newdictionary;对于int i=0;i<4;i++{dictionary.AddinstanceName+i,new MyClass;}您是指aboww代码吗?如果是,则不会生成以下对象:类型为MyClass的instganceName0、instganceName1、…、instganceName4。它只生成一个字典,其中字符串值instganceName0与类型MyClass关联。@NewBeeincSharp无法在运行时生成变量名。您的代码不能使用在运行时生成的变量名,即使可以生成它们。你需要把它带到船上。这样做的方法是使用某种集合;对于int i=0;i<4;i++{dictionary.AddinstanceName+i,new MyClass;}您指的是上面的代码吗?如果是,则不会生成以下对象:类型为MyClass的instganceName0、instganceName1、…、instganceName4。它只生成一个字典,其中字符串值instganceName0与类型MyClass关联。您建议的字典中的INSTGANCENAME 0不是对象标识符,而只是字符串值。@NewbieInCSharp正如注释中所指出的,这里真正的问题是,为什么需要实现这一点?是否有一个很好的理由让您这样做,或者您在实现之间感到困惑。我确信,无论你想实现什么,要么是不可能的,要么是有一个非常简单而优雅的解决方案。@Ed Plunkett:我将在代码生成器中创建c代码。那么如何生成这样的对象呢?