三行代码  ›  专栏  ›  技术社区  ›  Bododerelf

为什么有时我可以分配双精度值而没有值?

  •  1
  • Bododerelf  · 技术社区  · 1 月前

    我写了一个小的WF程序,它计算了一些冷凝器和欧姆定律。我现在想整理一下。我遇到了一个问题,我使用了2个双精度,两个双精度都被赋值为0。我可以去掉电压加倍的值。但不是现在的。我不知道为什么。我有什么遗漏吗?错误消息是CS0165使用未分配的局部变量“current”,并出现在调用CalcResistance方法的行中

    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace Kondensator_Ohmsches_Gesetz_Calc
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {       
              
            }
    
            private void calcResistance_Click(object sender, EventArgs e)
            {
                double voltage;
                double current;
                bool ok = double.TryParse(textBox1.Text, out voltage) && double.TryParse(textBox2.Text, out current);
                if (ok)
                {
                    textBox3.Text = Formulacollection.CalcResistance(voltage, current);
                }
                else
                {
                    textBox3.Text = "Error Format not found";
                }
                textBox4.Text = Formulacollection.ConvertMicro(textBox3.Text);
                textBox5.Text = Formulacollection.ConvertMilli(textBox3.Text);
                textBox6.Text = Formulacollection.ConvertKilo(textBox3.Text);
                textBox7.Text = Formulacollection.ConvertMega(textBox3.Text);
    
            }
    }
    

    using System;
    using System.Collections.Generic;
    using System.Text;
    using static System.Math;
    using System.Numerics;
    using System.Globalization;
    
    namespace Kondensator_Ohmsches_Gesetz_Calc
    {
        public static class Formulacollection
        {
            public static string CalcResistance(double voltage, double current)
            {
                var resistance = voltage / current;
    
                return resistance.ToString();
            }
    }
    
    2 回复  |  直到 1 月前
        1
  •  2
  •   treaschf    1 月前

    当您使用&时,不会始终对第二部分进行评估&操作人员尽量使用&而不是它,或者在声明时将默认值设置为current。

        2
  •  1
  •   Arun_Raja1    1 月前

    首先,CS0165是使用未初始化变量时发生的错误。 current 已正确初始化。关于错误的简要说明如下: here

    那么有一种可能性 of TryParse 同时,也更换了 && 具有 & .