- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
代码中有一个我找不到的错误,一些变量根本无法正常工作。
我收到的警告:
CS0649 Field 'Calculations.A' is never assigned to, and will always have its default value 0 ABC-Formule [path]\Calculations.cs
CS0649 Field 'Calculations.B' is never assigned to, and will always have its default value 0 ABC-Formule [path]\Calculations.cs
CS0649 Field 'Calculations.C' is never assigned to, and will always have its default value 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);
}
}
}
最佳答案
在 Calculations
构造函数中你有:
double A = a;
你想要:
A = a; // or this.A = a;
相反(这当然也涉及B
和C
)。
在您的代码中,您创建了一个本地(在构造函数的范围内)变量 A
,它与类的 A
字段无关(除了有,令人困惑, 同名)。在这种情况下发生的事情称为 shadowing ,有效地导致此函数代码中的每个 A
都表示局部变量,而不是父作用域中的字段。
关于c# - C# 中的 CS0649 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43880714/
我有 2 个 .cs 文件,每个文件中都有一个类。如何在 Form2.cs 中的另一个类中调用 Form1.cs 中的一个类中的方法? 看起来像这样...... Form1.cs public par
我正在尝试了解指针的移动方式。以下是程序,我知道如果 int cs={1,2,3}; 然后cs指向cs[0]我不清楚的是 *cs 指向什么。 #include int main() {
我是 ASP.NET Core 新手。我正在使用 ASP.NET Core 7。我读到在 ASP.NET Core 7 中他们删除了 Startup.cs。有人可以告诉我如何在此示例中将 Startu
所以我知道一般来说,这是不可能的,因为Jon Skeet said so . 但是我的 .cs 文件是简单的类,在顶部有一个或两个 usings。我需要一个包含所有类的文件,这样我就可以将它作为单个文
到目前为止,基本上我的脚本将值发送到网关,然后被重定向到 CS 购物车。在该页面中,我获取返回的值并对其进行操作。 我使用 fn finish 和 fn 更改订单状态来完成订单,但无论我做什么,我都会
我需要一个匹配所有以 .cs 结尾的字符串的正则表达式,但如果它们以 .g.cs 结尾,则它们不应该匹配。我正在使用 .NET 正则表达式。 最佳答案 如果是 .cs 而不是 .g.cs,这将匹配结尾
到目前为止,基本上我的脚本将值发送到网关,然后被重定向到 CS 购物车。在该页面中,我获取返回的值并对其进行操作。 我使用 fn finish 和 fn 更改订单状态来完成订单,但无论我做什么,我都会
我的 Form.cs 中有一个函数,我想在我的 program.cs 中调用它 但是如果函数不是静态的,program.cs就不能用了。如果它是静态的,则 Form.cs 无法使用它,因为它涉及非静态
因此,当我抓取不同解决方案的一些文件并将它们粘贴到不同的解决方案中时,我的 Mainform 和设计师分离了。如果我运行我的程序,表格会正确显示,但是当我在设计模式下查看我的表格时,它是一个空白表格。
我有一个用户控件 (UserControl1.ascx),我对其 cs 文件进行了更改。UserControl1.ascx 正被两个或多个使用 LoadControl 的 aspx 文件使用.我不想部
我正在学习一些 Xamarin 开发。当我研究 Xamarin 项目的例子时,like this one ,我有时会看到一个页面有一个与 xaml 文件及其代码隐藏文件同名的神秘文件,但以 *CS.c
是的,这有点毫无意义,但我想知道......我的 MVC 应用程序中所有这些代码隐藏文件都困惑了。据我所知,我需要这些文件的唯一原因是告诉 ASP.NET 我的页面是从 ViewPage 而不是 Pa
我已经从一个不再可用的人那里继承了一个网站。在已部署的文件夹中,我有 Config.aspx(请参阅代码)。但是我找不到代码隐藏文件。配置页面有效。我在哪里可以找到 .cs 文件? 谢谢
在为 Outlook(或其他潜在的 Office 程序)开发插件时,在主类上调用方法可能很有用,但是如何从事件处理程序(例如功能区中的 button_click 事件)中执行此操作。 最佳答案 使用:
我已经创建了 PlayPage.xaml、PlayPage.xaml.cs 和 Game.cs 文件。PlayPage.xaml.cs 有两个变量,windowWidth 和 windowHeight
我一直在关注使用 Caliburn Micro 的 MVVM 模式教程 https://www.youtube.com/watch?v=laPFq3Fhs8k .xaml.cs 和 ViewModel
我试图将一个值(来自一个对象)放在一个变量中,并将它放在一个表单的文本框中。 表单代码如下: public Form1(Deck mainDeck) { InitializeC
我知道这很基础,但我找不到任何关于如何在 MSDN、Google 搜索和 stackoverflow 之间执行此操作的指南/教程。 我创建了一个新的 Windows 窗体应用程序,这里我有 Progr
VS2017 15.4.1 ASP.NET MVC 5.2.3 T4MVC 4.0.0 AutoT4MVC 1.5.3 再加工者 我在这个项目中已经使用 T4MVC] 好几个月了,没有任何问题。然而,
我正在尝试配置 kestrel,以便当它处于原始模式时在特定端口上运行。但是这样做似乎 launchsettings.json 需要传递命令行参数才能这样做,因为没有直接选项并且它总是在端口 5000
我是一名优秀的程序员,十分优秀!