根据另一个变量

时间:2015-07-20 14:46:39

标签: c# variables

很抱歉,如果这是重复的,但我找不到我需要的东西(超过30分钟搜索网页)

我想用其他变量(字符串)创建名称变量 是否有可能在c#中执行此操作? 我是c#的新手。

2 个答案:

答案 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#的动态功能(dynamicExpandoObject,...) - 但坦率地说,您会更好在99%的时间里采用C#的成语。

ExpandoObject允许您使用以下代码:

dynamic item = new ExpandoObject();
((IDictionary<string, object>)item)["Message"] = "Hi!";

Console.WriteLine(item.Message);

但同样,它很少是做某事的最佳方式:)