根据另一个变量命名一个变量
本文关键字:变量 一个 另一个 | 更新日期: 2023-09-27 18:03:49
抱歉,如果这是一个重复,但我没有找到我需要的(超过30分钟的搜索网络)
我想用其他变量(字符串)的名称创建变量有可能在c#中做到这一点吗?我是c#新手
不,你不能,老实说,有这样一个功能是没有意义的。
如果你愿意,你可以使用字典,你可以让键是一个字符串:
Dictionary<string, RectangleShape> shapes = new Dictionary<string, RectangleShape>();
shapes.Add("nameTheKey", new RectangleShape( ... ));
那么你可以简单地读"变量",像
shapes["nameTheKey"]
不,这没有任何意义。
变量名(或者更准确地说,local)只在编译时重要,它们只在运行时有值。如果添加一个新变量,还需要添加代码来处理该变量——但是在没有编译器的情况下如何编写和使用该代码呢?
但是,如果您只是想以键值方式存储一些数据,则可以使用字典:
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);
但是,这也不是最好的方法:)