一尘不染

创建动态变量名称

c#

我们可以在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或name一样 )…

为什么需要动态变量名(场景):

var variablename=""
var variablename0=No;
var variablename1=Yes;
var variablename2=No;

。。。

gridview有多行。我需要将服务器端变量分配给每一行。所以我需要在服务器端设置变量。我可以Text=<%# variablename+rowCount%>为每个模板字段设置的唯一对象。

rowCount意味着每个网格行索引。

如果网格有2行,则rowCount值为0,1,2

现在,我需要将单独更改variablenamevariablename0,variablename1,variablename2动态。


阅读 424

收藏
2020-05-19

共1个答案

一尘不染

C#是强类型的,因此您不能动态创建变量。您可以使用数组,但是更好的C#方法是使用字典,如下所示。有关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<string, int> names = new Dictionary<string,int>();


            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"];
        }
    }
}
2020-05-19