繁体   English   中英

C#“非静态字段,方法或属性需要对象引用”

[英]C# “An object reference is required for the non-static field, method, or property”

我遇到了同样的问题,上周我只是从父类来看:

public ExtendedTime(int Hour, int Minute, String TimeZone) :base(hour, minute)
{

    timeZone = TimeZone;
}//end of ExtendedTime

:base(hour,minute)是我有这个错误的地方。 小时和分钟都表示同样的问题。 现在通常我会说我遗失了一些东西,但我尝试了这一点,它没有做任何好的遗憾。
在父类中,小时和分钟声明如下:

    internal int hour;
    internal int minute;

我有安装和吸气设置。

当您可能想要使用构造函数参数时,您尝试使用hourminute 字段 调用基类构造函数时,不能使用字段(或任何其他实例成员)。

我个人更改构造函数参数以获得更多的常规名称:

public ExtendedTime(int hour, int minute, String timeZone) : base(hour, minute)
{    
    this.timeZone = timeZone;
}

请注意,如果您将字段设为私有而非内部,则问题会更明显,因为您无法访问第一个字段:)

你没有传递你的论点:

Hour != hour
Minute != minute

将其更改为

public ExtendedTime(int hour, int minute, string timeZone) : base(hour, minute)

我认为你可能遇到了套管问题(c#区分大小写),试试这个:

public ExtendedTime(int hour, int minute, String TimeZone) :base(hour, minute)

显然, int Hour, int Minute, String TimeZone都不是合适的参数。 在参数中使用对象名称,而不是它们的类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM