2011-12-14 10 views
1

こんにちは私はランタイムエラーが発生しているので、このコードを実行する際に問題があります。Kennel.Kennel()は、抽象的な、外部の、または部分的な印がつけられていない。可能であれば、助言して助けてください。とても有難い。C#ランタイムエラー抽象的な、extern、またはpartialとマークされていないため、ボディを宣言します。

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); 
      } 


     } 
} 
+0

Kennel()の最初のコンストラクタのように見えますが、それに関連付けられたコードはありません。たとえ空であっても、本体を定義する中括弧を追加する必要があります。 – Sparky

+0

これは実行時エラーではない、コンパイルエラーです。 – Guffa

答えて

1
public Kennel(); 

これは意味がありません。

空のパラメータなしのコンストラクタについて、あなたはまだ体が必要になります。

public Kennel() 
{} 
1

ケンネルは何の実装/ボディ

public Kennel() {} 

public Kennel(); 

を交換していないためにあなたはコンストラクタをデフォルト

1

私はあなたのエラーを推測しているが、このライン上にある:

public Kennel(); 

あなたは、メソッドを宣言しているが、何の実装はありません。あなたの目的はnamebreed値を設けることなく、オブジェクトを構築するから人々を防ぐためであるならば、あなたはこのコンストラクタをプライベートにすることができ

public Kennel() {} 

:(それは私がしたいものだ)、それを削除するか、またはそれを変更しますか:

private Kennel() {} 
0

あなたは正確に何を理解していませんか? Kennelのコンストラクタはボディを宣言する必要がありますが、それについてはっきりしないものはありますか?あなたは体が空になりたい場合は、先に行く、それが空であることを宣言し

public Kennel() { } 

あなたは体を宣言しないことはできません。

関連する問題