![](/img/trans.png)
[英]C# “must declare a body because it is not marked abstract, extern, or partial”
[英]C# Runtime Error Declare a body because it is not marked abstract, extern, or partial
嗨,我有一些麻烦使这个代码运行,因为我得到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默认构造函数没有实现/主体
更换
public Kennel();
同
public Kennel() {}
我猜你的错误是在这一行:
public Kennel();
您正在声明一种方法,但没有实现。 删除它(这就是我要做的),或将其更改为:
public Kennel() {}
如果您的目的是阻止人们在不提供name
和breed
值的情况下构造对象,则可以将此构造函数设为私有:
private Kennel() {}
那你到底不明白什么? Kennel
的构造函数必须声明一个主体,尚不清楚吗?
如果你想要身体是空的,那么继续并声明它是空的:
public Kennel() { }
你不能声明一个身体。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.