c# - 为什么我会收到“未分配的局部变量”错误?
问题描述
在 if 语句下,等式中粗体和斜体的“CATickets”给了我一个未分配的局部变量错误。我是编码新手,不知道这意味着什么或如何解决它。我曾尝试查找此错误,但再次是编码新手,我不明白这是什么意思或如何解决它。其他票证变量没有错误,所以我不确定为什么这个有一个。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btn_Calculate_Click(object sender, EventArgs e)
{
double CATickets;
double CBTickets;
double CCTickets;
double totalRev;
if (txt_CASold.Text != "" && txt_CBSold.Text !=
"" && txt_CCSold.Text != "")
CATickets = double.Parse(txt_CASold.Text);
CBTickets = double.Parse(txt_CBSold.Text);
CCTickets = double.Parse(txt_CCSold.Text);
CATickets = ***CATickets*** * 15.0;
CBTickets = CBTickets * 12.0;
CCTickets = CCTickets * 9.0;
totalRev = CATickets + CBTickets + CCTickets;
txt_CARev.Text = CATickets.ToString("C");
txt_CBRev.Text = CBTickets.ToString("C");
txt_CCRev.Text = CCTickets.ToString("C");
txt_TotalRev.Text = totalRev.ToString("C");
}
private void btn_Clear_Click(object sender, EventArgs e)
{
txt_CASold.Text = "";
txt_CBSold.Text = "";
txt_CCSold.Text = "";
txt_CARev.Text = "";
txt_CBRev.Text = "";
txt_CCRev.Text = "";
txt_TotalRev.Text = "";
}
private void btn_Exit_Click(object sender, EventArgs e)
{
this.Close();
}
解决方案
首先,不要拆分声明和初始化。也就是不要声明没有值的变量,只为以后赋值。
其次,编译器告诉您您正在使用一个可能尚未分配的变量。那是因为您的if
语句仅适用于紧随其后的行,而不适用于其余行,因为您忘记了以下代码周围的花括号。
重写你的代码来解决这个问题:
if (txt_CASold.Text == "" || txt_CBSold.Text == "" || txt_CCSold.Text == "") {
return;
}
double CATickets = double.Parse(txt_CASold.Text) * 15.0;
double CBTickets = double.Parse(txt_CBSold.Text) * 12.0;
double CCTickets = double.Parse(txt_CCSold.Text) * 9.0;
double totalRev = CATickets + CBTickets + CCTickets;
txt_CARev.Text = CATickets.ToString("C");
txt_CBRev.Text = CBTickets.ToString("C");
txt_CCRev.Text = CCTickets.ToString("C");
txt_TotalRev.Text = totalRev.ToString("C");
您还应该删除代码中的魔术常量:What's15.0
等?介绍解释这些值的命名常量。
推荐阅读
- apache-kafka - kafka 标头,在消费者处
- r - R - Exclude rows from dataframe that don't contain certain values
- c - recv 不检索所有消息
- ios - 是否可以保存使用自定义数据提供程序的 PSPDFDocumentEditor 文档
- r - 我的神经网络分类器报告“意外的 CURL 错误”
- c - 父母在创建孩子后使用信号杀死 n 个孩子
- xamarin - Xamarin 使用不带 lambda 的异步方法形成命令
- azure - 使用 Flask 应用程序处理 Azure 中的端口
- python - 向键添加新值而不更改字典python中的旧值
- jquery - 如何通过使用 .your-class 和用于手机、平板电脑的多项目类来滑动图像的 slick 插件来获得响应式页面