调用类内的替身
本文关键字:替身 调用 | 更新日期: 2023-09-27 17:49:49
你好,
我试着把班里的双倍付费称为"钱包"但当我尝试这样做时,它会出现以下错误:
Member'Mc_DOnalds.Program.Paying' cannot be accessed with an instance reference; qualify it with a type name instead.
这是课堂上的钱包。
class Wallet
{
public double WalletCustomer = 100;
Program Betalen = new Program();
public void Pay()
{
WalletCustomer = (WalletCustomer - Betalen.Paying);
}
}
}
这在Program.cs 中
public static double Paying = 0;
因为Paying
是静态的,所以不需要创建类的实例来访问属性。试试这个(看看我是如何访问Program.Paying
的(:
class Wallet
{
public double WalletCustomer = 100;
public void Pay()
{
WalletCustomer = (WalletCustomer - Program.Paying);
}
}
}
对于static
成员,您需要使用class
名称而不是instance
WalletCustomer = (WalletCustomer - Program.Paying);
使用类名访问静态类的成员它本身例如,如果您有一个名为具有名为MethodA的公共方法的UtilityClass,可以调用方法如下,MSDN。
UtilityClass.MethodA();
出现此错误是因为您正试图从静态类访问非静态成员。解决方案:将您的成员标记为静态,或者将Calling函数更改为Non-static。或使用类名访问您的非静态成员这是怎么做的?
class Wallet
{
public static double WalletCustomer = 100;
Program Betalen = new Program();
public void Pay()
{
WalletCustomer = (WalletCustomer - Betalen.Paying);
}
}
或
class Wallet
{
public double WalletCustomer = 100;
Program Betalen = new Program();
public void Pay()
{
WalletCustomer = (WalletCustomer - Betalen.Paying);
}
}
在您的主程序中
Program.Paying = 0;
根据LeakyCode,在C#中,与VB.NET和Java不同,您不能使用实例语法访问静态成员。你应该做:
MyClass.MyItem.Property1
引用该属性或从Property1
中删除静态修饰符(这可能是您想要做的(。关于什么是静态的概念,请参阅我的另一个答案。
Poom