声明一个体,因为它没有被标记为抽象、外部或部分
本文关键字:抽象 记为 外部 一个 因为 声明 | 更新日期: 2023-09-27 18:17:41
嗨,我有一些麻烦,使这段代码运行,因为我得到一个运行时错误的Kennel.Kennel()
必须声明一个主体,因为它没有被标记为抽象,外部,或部分。请建议和帮助,如果你可以。感谢。
using System;
using System.Collections.Generic;
using System.Text;
public class Kennel : IComparable<Kennel>
{
private string _name;
private string _breed;
public string Name
{
get { return _name; }
set { _name = value; }
}
public string Breed
{
get { return _breed; }
set { _breed = value; }
}
public override string ToString()
{
return String.Format("Name: {0}, Breed: {1}", Name, Breed);
}
public Kennel();
public Kennel(string name, string breed)
{
this._name = name;
this._breed = breed;
}
#region #IComparable<Kennel> Members
public int CompareTo(Kennel other)
{
return other.Name.CompareTo(this.Name);
}
#endregion
}
class Run
{
public static void Main()
{
List<Kennel> kennels = new List<Kennel>();
kennels.Add(new Kennel("Alan", "French Bulldog"));
kennels.Add(new Kennel("Larry", "English Terrier"));
kennels.Add(new Kennel("Moe", "Gold Retriever"));
kennels.Add(new Kennel("Curly", "Chihuahua"));
foreach (Kennel k in kennels)
{
Console.WriteLine("Name: {0}, Breed: {1}", k.Name, k.Breed);
}
kennels.Sort();
foreach (Kennel k in kennels)
{
Console.WriteLine("Name: {0}, Breed: {1}", k.Name, k.Breed);
}
}
}
public Kennel();
这没有意义。
对于空的无参数构造函数,仍然需要一个主体:
public Kennel()
{}
您的默认构造函数Kennel没有实现/body
代替public Kennel();
public Kennel() {}
我猜你的错误在这一行:
public Kennel();
你正在声明一个方法,但是没有实现。要么删除它(这就是我要做的),要么将其更改为:
public Kennel() {}
如果你的目的是防止人们在没有提供name
和breed
值的情况下构造一个对象,你可以把这个构造函数设为私有:
private Kennel() {}
你到底有什么不明白的?Kennel
的构造函数必须声明一个主体,这有什么不清楚的吗?
如果你想让body为空,那么就声明它为空:
public Kennel() { }