很抱歉,如果这是重复的,但我找不到我需要的东西(超过30分钟搜索网页)
我想用其他变量(字符串)创建名称变量 是否有可能在c#中执行此操作? 我是c#的新手。
答案 0 :(得分:5)
不,你不能,老实说没有这样的功能。
如果需要,您可以使用字典,您可以在其中使用字符串:
Dictionary<string, RectangleShape> shapes = new Dictionary<string, RectangleShape>();
shapes.Add("nameTheKey", new RectangleShape( ... ));
然后你可以简单地阅读“变量”,如
shapes["nameTheKey"]
答案 1 :(得分:2)
不,这没有任何意义。
变量(或更准确地说,本地)名称仅在编译时很重要,并且它们在运行时只有值。如果添加一个新变量,您还需要添加代码来处理该变量 - 但是如何在没有编译器的情况下编写和使用该代码?
但是,如果您只想以键值方式存储某些数据,则可以使用字典:
var data = new Dictionary<string, decimal>();
第一个类型参数是键,第二个是值。请注意,值必须是相同的类型,或者是从某种常见类型派生的类型。
如果您想要更像JavaScript的内容,可以查看C#的动态功能(dynamic
,ExpandoObject
,...) - 但坦率地说,您会更好在99%的时间里采用C#的成语。
ExpandoObject
允许您使用以下代码:
dynamic item = new ExpandoObject();
((IDictionary<string, object>)item)["Message"] = "Hi!";
Console.WriteLine(item.Message);
但同样,它很少是做某事的最佳方式:)