在类中使用ASP.Net Core 2.1与ASP.Net 4.1 MVC的继承和实例化问题

时间:2018-09-05 10:52:49

标签: c# asp.net-mvc asp.net-core-2.1

两个类均位于不同的类文件中,但位于同一文件夹中。这是我的代码。

public class Person
{
    public String FirstName { get; set; }
    public String LastName { get; set; }
    public String Email { get; set; }
    public DateTime DateOfBirth { get; set; }
}

public class Zodiac : Person
{
   public Zodiac()
   {
      //person.DateOfBirth = DateTime.Now;
      DateOfBirth = DateTime.Now;// this doesn't work either
   }
      //Person person = new Person();
 }

即使我使用实例化,即使它们位于同一文件夹中也无法使用。它给了我这个错误。

  

严重性代码描述项目文件行抑制状态   错误CS0103当前名称'DateOfBirth'不存在   上下文PersonExercise D:\ Exercises \ PersonExercise \ PersonExercise \ Models \ Zodiac.cs 12有效

如果我使用实例化,它会给我这个错误。

  

严重性代码描述项目文件行抑制状态   错误CS1061“人员”不包含“日期出生”的定义   并且没有可访问的扩展方法“ DateOfBirth”接受第一个   可以找到类型为“ Person”的参数(您是否缺少使用   指令或汇编   参考?)PersonExercise D:\ Exercises \ PersonExercise \ PersonExercise \ Models \ Zodiac.cs 12有效

以下是有关该问题的屏幕截图:

Using Inheritance

Using Instance

2 个答案:

答案 0 :(得分:0)

看起来有些错字+无法完全理解继承。检查以下代码中的注释。

public class Zodiac : Person
{
    public Zodiac()
    {
      person.DateOfBirth = DateTime.Now; // This would not work, you have not declared an object named "person", note it is commented.
      DateOfBirth = Datetime.Now;// this doesn't work. <-- Indeed, there is a typo
      DateOfBirth = DateTime.Now;// this would work, note the uppercase Time.
    }
    //Person person = new Person();
}

答案 1 :(得分:0)

我注意到代码的问题是我放在属性 Person 内的 Persons 类中。它可能是拼写错误。

代码如下:

public class Person
{
    public class Persons //I've remove this class and the code runs perfectly.
    {
        public String FirstName { get; set; }
        public String LastName { get; set; }
        public String Email { get; set; }
        public DateTime DateOfBirth { get; set; }

    }
}

就像我将一个类嵌套在一个类中一样。这让我感到困惑。\