繁体   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