c# - 有没有办法在调用变量名时使用字符串?

标签 c# visual-studio

我是编程新手,所以请原谅我的新手。 我正在使用 Visual Studio,在我的程序中,设置中有一些按月份命名的变量;

JanuaryTotalAmount

JanuarySpentAmount

JanuaryGainedAmount

FebruaryTotalAmount

FebruarySpentAmount

FebruaryGainedAmount

ect...

所以在我的代码中,当我为它们赋值时:

Properties.Settings.Default.JanuaryTotalAmount += EnteredAmount;
Properties.Settings.Default.SpentAmount -= EnteredAmount;

他们只是将输入的值相加以获得总数。

但我试图让我的代码更整洁,并且想知道是否有一种方法可以根据用户选择的月份更改月份名称...

所以

string month = txtBoxMonth.Text;

Properties.Settings.Default."month"TotalAmount += TotalAmount

这将使我不必为每个月创建一个巨大的 switch 语句。 我不知道是否有办法做到这一点,但感谢任何帮助。

最佳答案

您提到您当前将这些值存储在您的设置文件中。

您可以通过 key 访问您的设置:

public void GetMonthAmount(string month)
{
    string keyName = month + "TotalAmount";
    object monthData = Properties.Settings.Default[keyName];
}

关于c# - 有没有办法在调用变量名时使用字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39345087/

相关文章:

c# - 将 AutoSuggestBox 添加到汉堡导航的正确方法?

C# 和 Excel,按名称选择列并获取最高值

.net - 如何添加一个集合,例如动态数组作为自定义 asp.net 控件的属性?

visual-studio - 无法在 Visual Studio 2005 中开始调试

c# - 为什么使用 JpegBitmapDecoder 的 LongRunning 任务 (TPL) 会耗尽资源?

c# - BufferNotEnough 无法创建 SSL/TLS 安全通道

MySQL for Visual Studio,无法加载存储过程进行编辑

c++ - 逗号运算符的用法

c# - 如何创建具有参数和私有(private)类型返回类型的快速调用委托(delegate),加速 DynamicInvoke

c# - 如何以编程方式在与父进程相同的 Visual Studio 调试 session 中启动子进程?