C# 将数据传递给另一个类中的布尔方法并处理响应
我有一个布尔方法,我试图将一个十进制数传递给它,然后根据接收到的十进制数的一些条件返回一个布尔值。将值传递到Account.Deposit时,我得到错误: 非静态字段、方法或属性“Account.decimal”需要对象引用 此方法处理用户输入,然后将值传递到我的检查/操作方法:C# 将数据传递给另一个类中的布尔方法并处理响应,c#,C#,我有一个布尔方法,我试图将一个十进制数传递给它,然后根据接收到的十进制数的一些条件返回一个布尔值。将值传递到Account.Deposit时,我得到错误: 非静态字段、方法或属性“Account.decimal”需要对象引用 此方法处理用户输入,然后将值传递到我的检查/操作方法: namespace BankApp { public class DepositLogic { public void DoDeposit() {
namespace BankApp
{
public class DepositLogic
{
public void DoDeposit()
{
Console.Write("Please enter the amount you would like to deposit:");
decimal DepositAmount;
DepositAmount = Convert.ToDecimal(Console.ReadLine());
bool response;
response = Convert.ToBoolean(Account.Deposit(DepositAmount));
}
}
}
这是一种布尔方法,旨在向上述方法返回真/假值,并根据DoDeposit方法的输入更改平衡变量
我的目标是让用户输入存款金额,该金额将传递到我的帐户。存款方法,余额变量将被更新。然后返回一个布尔值,以在操作成功/不成功时提醒用户
编辑:
如果我在另一个类中实例化我的帐户,仍然可以访问它吗?这里是我的帐户目前实例化的地方
namespace BankApp
{
public class Program
{
public static void Main()
{
Account account = new Account("Suriya's Account", 100000);
}
}
}
帐户是一个类。您需要创建一个实例来调用Deposit方法:
您当前正在尝试访问静态事务帐户中的存款方法。存款要使其生效,您必须将存款方法标记为静态。但是,由于您是从存款方法\u balance中访问字段,因此您更可能不希望使用静态方法。 在这种情况下,您必须首先实例化Account类,然后对实例化对象调用Deposit方法,如下所示:
public void DoDeposit()
{
Console.Write("Please enter the amount you would like to deposit:");
decimal DepositAmount;
DepositAmount = Convert.ToDecimal(Console.ReadLine());
bool response;
var account = new Account(); // Instantiate object
response = Convert.ToBoolean(account.Deposit(DepositAmount)); // Use instantiated object
}
如果您想进一步阅读C中的静态主题,请看。顺便说一句,存款金额是一个局部变量,您应该使用camelCase来命名它noted,谢谢@谢谢你的回答,这很有道理。我已经编辑了我的帖子。如果我在单独的类中将account类实例化为DoDeposit所在的类,它仍然可以被访问吗?thanks@Xander不,您要么必须在共享位置实例化Account对象,比如全局变量,我不建议这样做!,或者,您可以将Account实例作为参数传递到逻辑类的构造函数中,或者作为DoDeposit方法的参数传递给逻辑类。
Account account = new Account();
response = Convert.ToBoolean(account.Deposit(DepositAmount));
public void DoDeposit()
{
Console.Write("Please enter the amount you would like to deposit:");
decimal DepositAmount;
DepositAmount = Convert.ToDecimal(Console.ReadLine());
bool response;
var account = new Account(); // Instantiate object
response = Convert.ToBoolean(account.Deposit(DepositAmount)); // Use instantiated object
}