![](/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.