C#:使用字符串变量作为名称实例化一个 Class
C#: Instantiate a Class with String Variable as Name
我想知道是否可以在 C# 中以字符串变量作为名称来实例化 class。除了这个我不知道还能怎么解释。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
public class Product
{
string name;
decimal cost;
Product(string _name, decimal _cost)
{
name = _name;
cost = _cost;
}
}
class Program
{
static void Main(string[] args)
{
string nameForInstantiatedClass = "DellComputer";
Product nameForInstantiatedClass = new Product("Inspiron", 399.99m);
}
}
}
是否有可能做这样的事情或达到同样的效果,使用字符串声明实例化的名称 class 还是根本不可能做到?感谢任何帮助。
我想到的一件事是使用
var products = new Dictionary<string,Product>();
然后您可以像这样保存/检索项目
products.Add(nameForInstantiatedClass, ProductObject);
Product dellComp = products[nameForInstantiatedClass]
我不知道你为什么要那样做。
你还有别的逻辑吗?
您可以将实例放入列表或字典中,例如:
Dictionary<String, Product> dict = new Dictionary()
dict.add("DellComputer", new Product("",399.99m);
我想知道是否可以在 C# 中以字符串变量作为名称来实例化 class。除了这个我不知道还能怎么解释。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
public class Product
{
string name;
decimal cost;
Product(string _name, decimal _cost)
{
name = _name;
cost = _cost;
}
}
class Program
{
static void Main(string[] args)
{
string nameForInstantiatedClass = "DellComputer";
Product nameForInstantiatedClass = new Product("Inspiron", 399.99m);
}
}
}
是否有可能做这样的事情或达到同样的效果,使用字符串声明实例化的名称 class 还是根本不可能做到?感谢任何帮助。
我想到的一件事是使用
var products = new Dictionary<string,Product>();
然后您可以像这样保存/检索项目
products.Add(nameForInstantiatedClass, ProductObject);
Product dellComp = products[nameForInstantiatedClass]
我不知道你为什么要那样做。 你还有别的逻辑吗? 您可以将实例放入列表或字典中,例如:
Dictionary<String, Product> dict = new Dictionary()
dict.add("DellComputer", new Product("",399.99m);