C# 变量不包含值

C# 变量不包含值,c#,C#,我试图创建的程序有问题。这个程序就像一张信用卡,问题是我在“信用”变量中投入的钱的数量似乎根本不会影响变量,它保持为空。 以下是信用卡类别: 我编辑了代码,因为我刚刚注意到我没有插入所有内容,还包括program.cs!此程序运行时的结果: Program.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; n

我试图创建的程序有问题。这个程序就像一张信用卡,问题是我在“信用”变量中投入的钱的数量似乎根本不会影响变量,它保持为空。 以下是信用卡类别:

我编辑了代码,因为我刚刚注意到我没有插入所有内容,还包括program.cs!此程序运行时的结果:

Program.cs

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

namespace CreditCardExample
{
    class Program
    {
        static void Main(string[] args)
        {



            CreditCardExample.CreditCard c = new 
            CreditCardExample.CreditCard(20.0);
            c.enoughCredit(12);
            c.getAmtInCreditCard();
            Console.ReadKey();
        }
    }

}您的代码中有一个bug

 public CreditCard(double credit)
 {
      Credit = credit;
 }
测试:


您的代码中有一个bug

 public CreditCard(double credit)
 {
      Credit = credit;
 }
测试:


这是因为在构造函数中,您将属性赋回自身,而不是传递的值

this.credit = Credit // notice the casing?
改为

this.credit = credit;

这是因为在构造函数中,您将属性赋回自身,而不是传递的值

this.credit = Credit // notice the casing?
改为

this.credit = credit;


你说的“它是空的”是什么意思?你能展示一下你是如何使用这门课的吗?(顺便说一句,您可以不使用单独的
credit
变量-使用自动实现的属性:
public double credit{get;set;}
。理想情况下,不要对货币使用
double
,也可以使用-
decimal
更好。)“它保持为空”是什么意思?你能展示一下你是如何使用这门课的吗?(另一方面,您可以不使用单独的
credit
变量-使用自动实现的属性:
public double credit{get;set;}
。理想情况下,不要对货币使用
double
,也可以使用-
decimal
类型。)我还建议用一个前导下划线重命名类范围的变量,如下所示:\u credit。至少在我看来,只要让代码更可读就行了。我已经尝试过了,但当我传递一个值时,变量仍然保持为空。如果使用此解决方案,我建议您使用以下两种方法之一。要么去掉属性设置器,要么不直接分配给字段。如果以后的属性设置程序更复杂,而不是像现在这样简单的赋值,则此代码将引入错误。@Zer0我的回答只是指出错误并进行更正,代码正常运行。我不打算讨论编码风格,因为它离题了,对我的问题没有任何价值。@MarioVernari我的回答只是指出错误并纠正它,代码运行正常。我不打算讨论编码风格,因为它与主题无关,也不会给问题增加任何价值。我还建议用前导下划线重命名类范围的变量,如下所示:_credit。至少在我看来,只要让代码更可读就行了。我已经尝试过了,但当我传递一个值时,变量仍然保持为空。如果使用此解决方案,我建议您使用以下两种方法之一。要么去掉属性设置器,要么不直接分配给字段。如果以后的属性设置程序更复杂,而不是像现在这样简单的赋值,则此代码将引入错误。@Zer0我的回答只是指出错误并进行更正,代码正常运行。我不打算讨论编码风格,因为它离题了,对我的问题没有任何价值。@MarioVernari我的回答只是指出错误并纠正它,代码运行正常。我不打算讨论编码风格,因为它离题了,对我来说没有任何价值。@Mariz:为了帮助你,我们需要更多的信息。您需要更清楚地了解调用此类时使用的代码以及发生的情况。理想情况下,提供一个@Mariz,这在您发布的代码中是不可能的。查看我的编辑。我已经尝试了这行代码>Console.WriteLine(新信用卡(10.Credit));但它仍然表示0,而不是010@DaisyShipton我已经上传了所有的代码和它运行时的截图:)@Mariz你修复了构造器中的错误了吗?请发布一个完整的例子来重现这种行为。@Mariz:为了帮助您,我们需要更多的信息。您需要更清楚地了解调用此类时使用的代码以及发生的情况。理想情况下,提供一个@Mariz,这在您发布的代码中是不可能的。查看我的编辑。我已经尝试了这行代码>Console.WriteLine(新信用卡(10.Credit));但它仍然表示0,而不是010@DaisyShipton我已经上传了所有的代码和它运行时的截图:)@Mariz你修复了构造器中的错误了吗?请张贴一个完整的例子,再现的行为。