簡體   English   中英

C#運行時錯誤聲明一個正文,因為它沒有標記為abstract,extern或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() {}

如果您的目的是阻止人們在不提供namebreed值的情況下構造對象,則可以將此構造函數設為私有:

private Kennel() {}

那你到底不明白什么? Kennel的構造函數必須聲明一個主體,尚不清楚嗎?

如果你想要身體是空的,那么繼續並聲明它是空的:

    public Kennel() { }

你不能聲明一個身體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM