创建动态变量名称
我们可以在C#中创建动态变量吗?
我知道我的下面的代码是错误和编码很差。 但是这段代码有很小的逻辑,比如创建动态变量
var name=0; for(i=0;i<10;i++)// 10 means grid length { name+i=i; } var xx1=name1; var xx2=name2; var xx3=name3;
在c#中有可能吗? 在c#中创建动态变量? 并在c#中更改变量名称? 并在c#中连接变量名称( 就像我们可以连接任何控件ID或名称 )…
为什么我需要动态变量名称(方案):
var variablename="" var variablename0=No; var variablename1=Yes; var variablename2=No;
。 。 。
我有一个多行的gridview
。 我需要为每一行分配服务器端变量。 所以我需要服务器端的变量集。 我唯一可以为每个模板字段设置Text=
。
此rowCount
表示每个网格行索引。
如果网格有2行,则rowCount
值为0,1,2
现在我需要动态地将variablename0,variablename1,variablename2
更改为variablename0,variablename1,variablename2
以用于单独的行。
C#是强类型的,因此您无法动态创建变量。 您可以使用数组,但更好的C#方式是使用Dictionary,如下所示。 更多关于C#字典的信息 。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace QuickTest { class Program { static void Main(string[] args) { Dictionary names = new Dictionary(); for (int i = 0; i < 10; i++) { names.Add(String.Format("name{0}", i.ToString()), i); } var xx1 = names["name1"]; var xx2 = names["name2"]; var xx3 = names["name3"]; } } }
不,那是不可能的。 您应该使用数组:
name[i] = i;
在这种情况下,您的name+i
是name[i]
。
尝试这个,用户json序列化和反序列化:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.Script.Serialization; namespace ConsoleApplication1 { public class Program { static void Main(string[] args) { object newobj = new object(); for (int i = 0; i < 10; i++) { List temp = new List (); temp.Add(i); temp.Add(i + 1); newobj = newobj.AddNewField("item_" + i.ToString(), temp.ToArray()); } } } public static class DynamicExtention { public static object AddNewField(this object obj, string key, object value) { JavaScriptSerializer js = new JavaScriptSerializer(); string data = js.Serialize(obj); string newPrametr = "\"" + key + "\":" + js.Serialize(value); if (data.Length == 2) { data = data.Insert(1, newPrametr); } else { data = data.Insert(data.Length-1, ","+newPrametr); } return js.DeserializeObject(data); } } }
变量名称应在编译时知道。 如果您打算在运行时动态填充这些名称,可以使用List
var variables = List(); variables.Add(new Variable { Name = inputStr1 }); variables.Add(new Variable { Name = inputStr2 });
这里输入字符串可能是任何文本或任何列表
这是不可能的,它会给你一个编译时错误,
您可以使用数组来满足此类要求。
供你参考 :
http://msdn.microsoft.com/en-us/library/aa288453%28v=vs.71%29.aspx