2012-05-10 17 views
2

私は自分で解決できないVisualStudioにエラーメッセージが表示されます。メッセージは次のとおりです。エラーメッセージを理解しようとしています

一貫性のないアクセシビリティ:プロパティタイプ「WindowsFormApplication1.ContactFiles.Contact」は、このためのエラー源を見つけるための「WindowsFormApplication1.ContactForm.ContactData」

public ContactFiles.Contact ContactData 
    { 
     get 
     { 
      return m_contact; 
     } 
     set 
     { 
      if (value != null) 
       m_contact = value; 
     } 
    } 

Preciateヘルププロパティ未満にアクセス可能です問題!ありがとう!

答えて

2

Kyleは1つのアプローチを提案していますが、それがより多くの(類似の)エラーを引き起こしている場合は、内部:あなたは必要プロパティは、公開する場合は、あなたがかどうかを確認するためにContactのすべてのパブリックプロパティを確認する必要があることを意味している公共するContactが必要になります

internal ContactFiles.Contact ContactData 
{ 
    // Code as before 
} 

彼らは、内部(または私的)タイプなどを指します。

の公開のプロパティは、(または私的ネストされた)タイプを返すことはできません。「これを使用することはできますが、私は何を知ることはできませんリターン "は意味をなさない。通常のメソッドのパラメータと戻り値の型についても同様です。また、内部クラスからパブリッククラスを派生することもできません。

+0

私はpublicの代わりにinternalに変更したとき、私はもうエラーメッセージを表示しません!すばらしいです!しかし、私はそれがすべてどのように機能するのかは分かりません。派生クラスは使用していません。 –

+0

@ 3D-kreativ:私は派生クラスについて最後に述べました。あなたの 'Contact'クラスは公開されていませんでしたが、あなたは公開プロパティを介してそれを公開しようとしていたことを理解していますか?どのようなアクセシビリティ(公的、社内、私的なものなど)について理解していますか?パブリックメソッドが内部型を返すか、必要とすることは意味がないと考えてください。それは基本的にあなたの財産がやっていたことです。 –

+0

うーん、私はあなたがexplaneしようとしていることを知っていると思う、それは私の頭に入るには時間がかかる –

5

ContactFiles.Contactpublicとして解決してください。

publicプロパティContactDataは、非公開タイプContactFiles.Contactのインスタンスを返します。

+0

私がやったとき、最初のようないくつかの新しいエラーメッセージが出ました! –

0

この例外は、公開されているメソッドで内部オブジェクトまたはプライベートオブジェクトを返そうとしたときに発生します。プライベートに知られているオブジェクトをパブリックメソッドに渡そうとすると同じ例外が発生する

+0

これは例外ではなく、内部オブジェクトまたはプライベートオブジェクト*ではありません。*タイプ*です。 –

+0

申し訳ありません。私はタイプを意味しました。はい、それは例外ではなく、コンパイラエラーです – Tomtom

関連する問題