c# - c#中的静态字段问题(错误CS0120)
问题描述
我必须为我的函数 DajGlos() 编写一个覆盖函数,但我返回错误 CS0120(非静态字段、方法或属性需要对象引用)。我怎样才能解决这个问题?
我的代码:
static void Main(string[] args)
{
Pies pies = new Pies("Reksio", "ssaki", "lądowe", 50);
Pies.Przedstaw("Reksio", "ssaki", "lądowe");
Pies.DajGlos();
}
abstract class Zwierze
{
private static string Rodzina { get; set; }
private static string Grupa { get; set; }
private static string Imie { get; set; }
public static void Przedstaw(string Imie, string Rodzina, string Grupa)
{
Console.WriteLine("Jestem " + Imie + ", rodzina: " + Rodzina + ", grupa: " + Grupa);
}
public abstract void DajGlos();
}
class Pies : Zwierze
{
public Pies(string Imie, string Rodzina, string Grupa, int dlugoscOgona)
{
}
int dlugoscOgona;
public override void DajGlos()
{
Console.WriteLine("Bark!");
}
}```
解决方案
DajGlos
是一个实例方法,所以正如错误消息所说,您需要在特定实例(在您的情况下 - pies
)上调用它,而不是在类本身上。IE:
Pies pies = new Pies("Reksio", "ssaki", "lądowe", 50);
Pies.Przedstaw("Reksio", "ssaki", "lądowe");
pies.DajGlos(); // Here!
推荐阅读
- amazon-elastic-beanstalk - Elastic Beanstalk 实例 IP 地址何时更改?
- performance - 找出 ES 集群中有问题的索引?
- generics - 将记录数据类型推入堆栈
- mysql - 如何获取 MySQL 在新行插入期间更新索引所花费时间的统计信息
- java - java中构建器类的正确命名
- git - 完全撤消提交并推送到远程
- android - MVVM 中的 Activity 到 Activity 通信
- mongodb - 在聚合管道期间对列表索引进行平均?
- c - 如何允许子进程创建嵌套的用户命名空间?
- ios - Swift - 多个 TableView 复选标记 - 保存和加载选择