如何在double中更改项目?

问题描述 投票:0回答:2

如何根据简单条件更改我的double变量中的项目?检查此示例:

public partial class Form1 : Form
{

    double[] vk = new double[11] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

    ...
    ...

    void setDouble()
    {
        if (bunifuDropdown1.selectedIndex == 0)
        {
            double[] vk = new double[11] { 2, 4.86, 11.81, 28.68, 69.64, 169.13, 410.75, 997.55, 2422.61, 5883.49, 21000 };
        }
        if (bunifuDropdown1.selectedIndex == 1)
        {
            double[] vk = new double[11] { 2, 4.51, 10.14, 22.81, 51.31, 115.46, 259.78, 584.51, 1315.14, 2959.07, 21000 };
        }
        if (bunifuDropdown1.selectedIndex == 2)
        {
            double[] vk = new double[11] { 2, 6.86, 18.67, 47.33, 116.94, 286.01, 696.59, 1693.71, 4115.30, 9996.29, 21000 };
        }
        if (bunifuDropdown1.selectedIndex == 3)
        {
            double[] vk = new double[11] { 2, 6.51, 16.64, 39.43, 90.72, 206.12, 465.78, 1049.99, 2364.49, 5322.09, 21000 };
        }
        if (bunifuDropdown1.selectedIndex == 4)
        {
            double[] vk = new double[11] { 2, 6.86, 18.67, 47.33, 108.94, 264.58, 642.55, 1560.47, 3789.71, 9203.58, 21000 };
        }
        if (bunifuDropdown1.selectedIndex == 5)
        {
            double[] vk = new double[11] { 2, 6.51, 16.64, 39.43, 82.72, 186.12, 418.78, 942.24, 2120.05, 4770.11, 21000 };
        }
    }

执行功能setDouble()之后,这些值没有改变。找不到错误。你可以帮帮我吗?祝你有美好的一天。

c#
2个回答
4
投票

您要在函数中重新声明vk,即原来的shadows。试试这个:

public partial class Form1 : Form
{
    double[] vk = new double[11] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

    ...
    ...

    void setDouble()
    {
        if (bunifuDropdown1.selectedIndex == 0)
        {
            // NOTE: Here instead of "double[] vk = ..." we have "vk = ..."
            vk = new double[11] { 2, 4.86, 11.81, 28.68, 69.64, 169.13, 410.75, 997.55, 2422.61, 5883.49, 21000 };
        }
        if (bunifuDropdown1.selectedIndex == 1)
        {
            vk = new double[11] { 2, 4.51, 10.14, 22.81, 51.31, 115.46, 259.78, 584.51, 1315.14, 2959.07, 21000 };
        }
        if (bunifuDropdown1.selectedIndex == 2)
        {
            vk = new double[11] { 2, 6.86, 18.67, 47.33, 116.94, 286.01, 696.59, 1693.71, 4115.30, 9996.29, 21000 };
        }
        if (bunifuDropdown1.selectedIndex == 3)
        {
            vk = new double[11] { 2, 6.51, 16.64, 39.43, 90.72, 206.12, 465.78, 1049.99, 2364.49, 5322.09, 21000 };
        }
        if (bunifuDropdown1.selectedIndex == 4)
        {
            vk = new double[11] { 2, 6.86, 18.67, 47.33, 108.94, 264.58, 642.55, 1560.47, 3789.71, 9203.58, 21000 };
        }
        if (bunifuDropdown1.selectedIndex == 5)
        {
            vk = new double[11] { 2, 6.51, 16.64, 39.43, 82.72, 186.12, 418.78, 942.24, 2120.05, 4770.11, 21000 };
        }
    }

1
投票

让我们单独 数据本身和业务逻辑,我们将拥有易于阅读的代码,像这样

   public partial class Form1 : Form {
      private static readonly double[][] s_AllVks = new double[][] {
        new double[] { 2, 4.86, 11.81, 28.68,  69.64, 169.13, 410.75,  997.55, 2422.61, 5883.49, 21000 },
        new double[] { 2, 4.51, 10.14, 22.81,  51.31, 115.46, 259.78,  584.51, 1315.14, 2959.07, 21000 }, 
        new double[] { 2, 6.86, 18.67, 47.33, 116.94, 286.01, 696.59, 1693.71, 4115.30, 9996.29, 21000 }, 
        new double[] { 2, 6.86, 18.67, 47.33, 108.94, 264.58, 642.55, 1560.47, 3789.71, 9203.58, 21000 },
        new double[] { 2, 6.51, 16.64, 39.43,  82.72, 186.12, 418.78,  942.24, 2120.05, 4770.11, 21000 }, 
      }

      double[] vk = new double[11] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; 

      void setDouble() {
        if (bunifuDropdown1.selectedIndex >= 0 && bunifuDropdown1.selectedIndex < s_AllVks.Length)
          vk = s_AllVks[bunifuDropdown1.selectedIndex] 
      } 
© www.soinside.com 2019 - 2024. All rights reserved.