C# 中的 CS0649 错误

2023-12-10

代码中存在一个我找不到的错误,某些变量根本无法工作。

我收到的警告:

CS0649 字段“Calculations.A”从未分配,并且始终具有默认值 0 ABC-Formule [path]\Calculations.cs

CS0649 字段“Calculations.B”从未分配,并且始终具有默认值 0 ABC-Formule [path]\Calculations.cs

CS0649 字段“Calculations.C”从未分配,并且始终具有默认值 0 ABC-Formule [path]\Calculations.cs

代码: 程序.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ABC_Formule
{
    class Program
    {
        static void Main(string[] args)
        {
            bool keepGoing = true;
            while (keepGoing)
            {
                //Definieren strings gebruikt in Main
                string a;
                string b;
                string c;
                string keepGoingString;
                string discriminantString;

                double aDouble;
                double bDouble;
                double cDouble;

                double discriminantValue;
                double singleX;
                double doubleX1;
                double doubleX2;

                //Vraag de user om input
                Console.WriteLine("Welkom bij de ABC-Calculator. Gemaakt door Luciano Nooijen.");
                Console.WriteLine("Zorg voor een correcte invoer. De opbouw van een formule is ax^2 + bx + c.");
                Console.WriteLine("");
                Console.WriteLine("Vul de juiste variabelen in: (komma = ,)");
                Console.Write("a: "); a = Console.ReadLine();
                Console.Write("b: "); b = Console.ReadLine();
                Console.Write("b: "); c = Console.ReadLine();

                //Omzetten van string naar double 
                aDouble = Convert.ToDouble(a);
                bDouble = Convert.ToDouble(b);
                cDouble = Convert.ToDouble(c);
                               
                Console.WriteLine("a, b en c zijn: " + aDouble + ", " + bDouble + " en " + cDouble);
                Console.WriteLine("");

                //Invoeren getallen in berekenfunctie
                Calculations berekeningen = new Calculations(aDouble, bDouble, cDouble);

                //Discriminant berekenen
                discriminantValue = berekeningen.Discriminant();

                //Validatie discriminant en output
                discriminantString = berekeningen.ValidDiscriminant();
                if (discriminantString == "Gelijk") //Enkele output 
                {
                    singleX = berekeningen.OutputOnlyX();
                    Console.WriteLine("De discriminant is: " + discriminantValue);
                    Console.WriteLine("Het x-coördinaat is: " + singleX);
                }
                else if (discriminantString == "Groter") //Dubbele output
                {
                    doubleX1 = berekeningen.OutputX1();
                    doubleX2= berekeningen.OutputX2();
                    Console.WriteLine("De discriminant is: " + discriminantValue);
                    Console.WriteLine("Het x1-coördinaat is: " + doubleX1);
                    Console.WriteLine("Het x2-coördinaat is: " + doubleX2);
                }
                else if (discriminantString == "Kleiner") //Geen snijpunt
                {
                    Console.WriteLine("De discriminant is: " + discriminantValue + " en er is dus geen snijpunt met de x-as.");
                }
                else //Ongeldige invoer
                {
                    Console.WriteLine("Ongeldige invoer");
                }

                //Vragen of gebruiker door wil gaan
                Console.Write("Druk op enter om door te gaan, of druk op typ q om af te sluiten: "); keepGoingString = Console.ReadLine();
                if (keepGoingString.Equals("q"))
                {
                    keepGoing = false;
                }
                else
                {
                    Console.WriteLine("");
                    Console.WriteLine("-----------------------------------------------------------");
                    Console.WriteLine("");
                    Console.Clear();
                }              
            }

        }
    }
}

计算.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ABC_Formule
{
    class Calculations
    {
        protected double A;
        protected double B;
        protected double C;
        protected double DiscriminantValue;

        public Calculations (double a, double b, double c)
        {
            double A = a;
            double B = b;
            double C = c;
        }

        public double Discriminant ()
        {
            DiscriminantValue = B*B-4*A*C;
            return DiscriminantValue;
        }

        public string ValidDiscriminant()
        {
            if (DiscriminantValue < 0) //Geen uitkomst
            {
                return "Kleiner";
            }
            else if (DiscriminantValue == 0) //1 uitkomst
            {
                return "Gelijk";
            }
            else if (DiscriminantValue > 0) //Twee uitkomsten
            {
                return "Groter";
            }
            else //Bij fout
            {
                return "Error";
            }

        }

        public double OutputOnlyX ()
        {
            return (-B + Math.Sqrt(DiscriminantValue) ) / (2 * A);
        }

        public double OutputX1 ()
        {
            return (-B - Math.Sqrt(DiscriminantValue)) / (2 * A);
        }

        public double OutputX2 ()
        {
            return (-B + Math.Sqrt(DiscriminantValue)) / (2 * A);
        }
    }
}

In Calculations你有的构造函数:

double A = a;

你要:

A = a; // or this.A = a;

instead(this of course concerns also B and C).

在您的代码中,您创建一个本地(在构造函数的范围内)变量A这与班级无关A字段(除了容易混淆的相同名称之外)。在这种情况下发生的事情称为影子,有效地导致每个A在此函数的代码中表示局部变量,而不是父作用域中的字段。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 中的 CS0649 错误 的相关文章

  • XamlReader.Load 在后台线程中。是否可以?

    WPF 应用程序具有从单独的文件加载用户控件的操作 使用XamlReader Load method StreamReader mysr new StreamReader pathToFile DependencyObject rootOb
  • 读取文件特定行号的有效方法。 (奖励:Python 手册印刷错误)

    我有一个 100 GB 的文本文件 它是来自数据库的 BCP 转储 当我尝试导入它时BULK INSERT 我在第 219506324 行上收到一个神秘错误 在解决此问题之前 我想看看这一行 但可惜的是我最喜欢的方法 import line
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 用于检查项目文件中的项目变量和引用路径的 api

    我正在研究一个 net application VS2010 与 x 没有 解和变量号这些解决方案中的项目数量 我需要检查项目属性 特定于一定数量的项目 是否同质 并且检查 验证构建期间的参考路径 有没有一个API是这样的吗 如果没有 我该
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • Typescript:$rootScope 上不存在属性(Angularjs)

    在 Typescript 中向根作用域添加值时出现错误 class TestClass this rootScope ng IRootScopeService constructor rootScope this rootScope roo
  • ASP.NET:获取自 1970 年 1 月 1 日以来的毫秒数

    我有一个 ASP NET VB NET 日期 我试图获取自 1970 年 1 月 1 日以来的毫秒数 我尝试在 MSDN 中寻找方法 但找不到任何东西 有谁知道如何做到这一点 从 NET 4 6 开始 该方法ToUnixTimeMillis
  • Rx 中是否有与 Task.ContinueWith 运算符等效的操作?

    Rx 中是否有与 Task ContinueWith 运算符等效的操作 我正在将 Rx 与 Silverlight 一起使用 我正在使用 FromAsyncPattern 方法进行两个 Web 服务调用 并且我想这样做同步地 var o1
  • C++:.bmp 到文件中的字节数组

    是的 我已经解决了与此相关的其他问题 但我发现它们没有太大帮助 他们提供了一些帮助 但我仍然有点困惑 所以这是我需要做的 我们有一个 132x65 的屏幕 我有一个 132x65 的 bmp 我想遍历 bmp 并将其分成小的 1x8 列以获
  • std::async 与重载函数

    可能的重复 std bind 重载解析 https stackoverflow com questions 4159487 stdbind overload resolution 考虑以下 C 示例 class A public int f
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • 如何从main方法调用业务对象类?

    我已将代码分为业务对象 访问层 如下所示 void Main Business object public class ExpenseBO public void MakeExpense ExpensePayload payload var
  • 如何对 Web Api 操作进行后调用?

    我创建了一个 Web API 操作 如下所示 HttpPost public void Load string siteName string providerName UserDetails userDetails implementat
  • gcc 的配置选项如何确定默认枚举大小(短或非短)?

    我尝试了一些 gcc 编译器来查看默认枚举大小是否很短 至少一个字节 强制使用 fshort enums 或无短 至少 4 个字节 强制使用 fno short enums user host echo Static assert 4 si
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • 将自定义 ValueProviderFactories 添加到 ASP.NET MVC3?

    我试图尝试将 Protobuf ValueProviderFactory 添加到 MVC3 以便我可以选择 MIME 类型并将原始数据反序列化为操作参数的对象 我还可以使用它来更改默认的 Json 序列化器 看着JsonValueProvi
  • 如何使用 Word Automation 获取页面范围

    如何使用办公自动化找到 Microsoft Word 中第 n 页的范围 似乎没有 getPageRange n 函数 并且不清楚它们是如何划分的 这就是您从 VBA 执行此操作的方法 转换为 Matlab COM 调用应该相当简单 Pub
  • 在客户端系统中安装后桌面应用程序无法打开

    我目前正在使用 Visual Studio 2017 和 4 6 1 net 框架 我为桌面应用程序创建了安装文件 安装程序在我的系统中完美安装并运行 问题是安装程序在其他计算机上成功安装 但应用程序无法打开 edit 在客户端系统中下载了
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • 第二代 Google 云 SQL - App Engine

    很高兴看到您推出了第二代云 SQL 测试版 然而 我发现它还不适用于 GAE 项目 您能估计一下这个链接何时启用吗 由于第一代 SQL 的缓慢 我们正在我们的精美系统中进行一些重大的基础设施更改 但如果更改不远 我们将坚持使用云 SQL 自
  • 组件包——在哪里划分运行时、设计时、注册时等

    在构建安装组件时 我知道注册单元通常是 应该分开 的事情 但是何时应该划分组件的准则是什么安装分成两个单独的包 通常一个是运行时 另一个是设计时 额外问题 当运行时包和设计时包分开时 可接受的包命名约定是什么 任何特定于 IDE 中使用的内
  • time.strptime() - 参数 0 必须是 str,而不是字节

    显然我已经知道了strftime and strptime不喜欢字节字符串作为参数 但是我在这里陷入困境 因为我需要读取其中保存了不同字符编码的文件内容 并且我需要处理所有它们 并发送每个文件的时间部分该文本文件中的行strptime 一个
  • Json.NET 反序列化 Mongo ObjectId 给出了错误的结果

    我使用官方 Mongo C 驱动程序和 RestSharp 通过 Json NET 调用 Rest Api 来执行序列化 反序列化 假设我有一个 Person 类 如下所示 我想对其进行 POST 和 GET public class Pe
  • R 应用错误 - as.matrix.data.frame() 中的错误

    我遇到了一个莫名其妙的错误 我正在使用以下函数删除任何列中包含 NA 观察值的数据帧的行 removes NA d rows from a dataFrame wipeNArows lt function X rowsToDelete lt
  • 使用 PHP 和 JSON 将图像数据从 XCode 插入 MySQL 数据库

    如何使用 JSON 通过 PHP 从 XCode 在 MySQL 数据库中插入 存储图像 从 xcode 中 您可以 void uploadImage UIImage image NSData imageData UIImageJPEGRe
  • 如何使用 ionic 将 URL 中的图像保存到设备照片库中?

    我是 ionic 的新手 我正在应用程序中使用 ionic 开发应用程序 当用户单击下载按钮时 我需要将图像下载到用户设备 我进行了很多搜索 但找不到任何合适的解决方案 您可以使用Transfer plugin from ionic nat
  • 如何在 Mongoose 中检索嵌入文档中数组的最后一个对象?

    我在编写查询来检索 Story 文档中嵌入的 Comments 数组的最后一个对象时遇到问题 当我执行 db stories find 时 我的集合当前看起来像这样 id ObjectId 55d3a39565698bbc68079e31
  • XMPP 聊天应用程序因使用 VoIP 服务作为后台模式而被拒绝

    我已经完成了一个 XMPP 聊天应用程序 其中我使用 Voip 服务来获取 Voip 密钥 以便在我在后台时接收聊天消息 功能一切正常 但应用程序商店拒绝该应用程序 响应如下 2 16 多任务应用程序只能将后台服务用于其预期目的 VoIP
  • iPad 上模态视图上显示不需要的 SplitView

    在 iPad 上测试我的第一个 SwiftUI 应用程序时 我发现从 ContentView 显示的模态视图在 iPad 上显示为拆分视图 主侧的 UI 被截断 详细信息侧为空 我确实在这里检查了两篇文章 不需要的分割视图 and UISp
  • 读取csv文件c#

    有没有办法将 csv 文件读入矩阵 这样文件中的每个方块都将是矩阵中的一个单元格 有许多开源 CSV 阅读器 而且编写自己的代码也很容易 首先请访问 codeplex com http kbcsv codeplex com 或者Codepr
  • 使用 D3.js 对折线图中的线条进行动画处理

    我有我的折线图 有 2 条线 绘制折线图的数据是从 csv 文件中提取的 谁能解释一下我如何从一个空图表开始 当我单击一个按钮时 我的线条在图表上有动画效果吗 提前致谢 var Button d3 select button var mar
  • 我无法在 R 中安装软件包

    当我尝试在 Rstudio 中安装任何软件包时 我收到以下错误消息 Error in install packages path 1 C Users javad Documents Rhistory win library 3 2 The
  • 处理来自 api 调用的文件下载

    在反应中 我正在根据 John Culviner 中提到的解决方案测试我的文件下载这个帖子 axios post api downloadMyFile data then response gt const url window URL c
  • jQuery.datepicker.formatDate 和时区偏移

    为了处理日期 我使用 jQuery UIpublic我的应用程序中的方法 jQuery datepicker formatDate 请参阅此处的参数和来源 https github com jquery jquery ui blob mas
  • 在 ASP.NET MVC 5 中将整个对象从视图传递到控制器

    有没有办法将整个对象从 ASP NET MVC 5 视图传递到控制器 这是我的情况 我有一个显示数据库表中所有行的视图 视图的模型是 IEnumerable 每行数据后面都有一个链接 可通往支架式 UPDATE 视图 有没有办法将整个对象传
  • C#/IRS ACA - 使用 WCF 4.5 发送带有 MTOM 附件和 GZip 编码的 Web 服务请求

    我们正在尝试通过公开的 Web 服务将数据发送到 IRS 以进行 ACA 数据传输 但由于安全标头中时间戳和签名元素的顺序 我们无法使 WSE 3 0 方法发挥作用 当 TimeStamp 元素出现在 Signature 元素之前时 IRS
  • Windows 上的 Pyusb - 没有可用的后端

    我正在尝试通过 USB 将我的 Python 应用程序接口与 NFC 设备连接 最好的选择似乎是PyUSB 但我无法让它连接到 libusb 后端 我不断得到 ValueError 没有可用的后端 我查看了堆栈跟踪 发现usb backen
  • 具有多次重复的 scikit-learn GridSearchCV

    我正在尝试为 SVR 模型获取最佳参数集 我想使用GridSearchCV超过不同的值C 然而 从之前的测试中 我注意到训练 测试集的划分极大地影响了整体性能 在本例中为 r2 为了解决这个问题 我想实现重复的 5 倍交叉验证 10 x 5
  • C# 中的 CS0649 错误

    代码中存在一个我找不到的错误 某些变量根本无法工作 我收到的警告 CS0649 字段 Calculations A 从未分配 并且始终具有默认值 0 ABC Formule path Calculations cs CS0649 字段 Ca