我正在通过本教程dotnetacademy exercise 5.1工作 我已经尝试了许多不同的方法来解决这个问题,当我尝试验证时,它不会起作用。我试过这个:
public class Atom
{
public Atom()
{
}
public Atom(int protons, int electrons)
{
Protons = protons;
Electrons = electrons;
}
public int Protons { get; set; }
public int Electrons { get; set; }
}
public class Program
{
public static void Main(string[] args)
{
var Hydrogen = new Atom(1,2);
}
}
我得到一个错误说"你必须定义一个名为Hydrogen的类型。",但我认为这就是var Hydrogen所做的。
我也试过了:
public class Atom
{
public Atom(int protons, int electrons)
{
Protons = protons;
Electrons = electrons;
}
public int Protons { get; set; }
public int Electrons { get; set; }
}
public class Hydrogen : Atom
{
public Hydrogen() : base("Atom") {}
}
public class Program
{
public static void Main()
{
}
}
这个人不会编译。公共氢气():基地("原子")"它说"没有参数,因为它对应于形式参数'质子' ' Atom.Atom(int,int)'"
我甚至问了一位C#开发人员,他无法弄清楚为什么我的尝试无法正常工作。有人可以帮忙吗?我刚刚掌握了这些概念,现在我被卡住了。
编辑: 只是为了给出该链接的完整上下文,他们使用以下代码启动嵌入式验证器:
public class Atom
{
public int Protons { get; set; }
public int Electrons { get; set; }
}
public class Program
{
public static void Main()
{
}
}
并且说明如下:
- 在基本类型Atom上创建一个构造函数,它接受一个名为质子和整数电子的整数。构造函数应该 将值设置为关联的属性Protons和Electrons。
- 实现从Atom继承的派生类型氢,并为基质提供质子和电子的正确参数 构造
醇>
我没有求助于在论坛上发帖寻求帮助,因为我一直在研究我的方式并试图解决这个问题,但我想知道他们是否只是严格要求"如何&# 34;他们希望它能够解决,无论你是否可以通过许多不同的方式解决它。我只是想看看他们希望我们如何解决它!洛尔
再次感谢!
答案 0 :(得分:1)
没有参数给出对应于'Atom.Atom(int,int)的形式参数'protons'
这是基类的构造函数:
public Atom(int protons, int electrons)
但是在派生类中你试图使用它:
base("Atom")
也就是说,您提供string
值而不是两个int
值。改为提供int
值:
public class Hydrogen : Atom
{
public Hydrogen() : base(1, 1) {}
}
答案 1 :(得分:0)
我明白了!谢谢大卫的帮助!这是最终的代码:
public class Atom
{
public Atom(int protons, int electrons)
{
Protons = protons;
Electrons = electrons;
}
public int Protons { get; set; }
public int Electrons { get; set; }
}
public class Hydrogen : Atom
{
public Hydrogen() : base(1, 1) {}
}
public class Program
{
public static void Main()
{
var Nucleus = new Hydrogen();
}
}
答案 2 :(得分:0)
此代码可以正常工作:
public class Atom
{
public int Protons { get; set; }
public int Electrons { get; set; }
public Atom(int protons, int electrons)
{
Protons = protons;
Electrons = electrons;
}
}
public class Hydrogen : Atom
{
public Hydrogen() : base(1, 1)
{
}
}
public class Program
{
public static void Main()
{
}
}
答案 3 :(得分:0)
我犯了一个非常简单的错误,property =变量运行,而variables = property导致编译错误
public Atom(int protons, int electrons)
{
protons = Protons;
electrons = Electrons;
}
VERSUS
public Atom(int protons, int electrons)
{
Protons = protons;
Electrons = electrons;
}