2

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

一貫性のないアクセシビリティ: プロパティ タイプ 'WindowsFormApplication1.ContactFiles.Contact' は、プロパティ 'WindowsFormApplication1.ContactForm.ContactData' よりもアクセスしにくい

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

この問題のエラーの原因を見つけるための助けを借りてください! ありがとう!

4

3 に答える 3

5

エラーを解決するには、マークContactFiles.Contactを付けます。public

あなたのpublicプロパティContactDataは非パブリック タイプのインスタンスを返していますContactFiles.Contact

于 2012-05-10T05:40:50.270 に答える
2

Kyle は 1 つのアプローチを提案しましたが、それがより多くの (同様の) エラーを引き起こしている場合は、別の方法を試すことができます: プロパティを内部にします:

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

プロパティをパブリックにする必要がある場合は、パブリックにする必要Contactがあります...つまり、すべてのパブリック プロパティを調べて、それらが内部 (またはプライベート) 型などを参照してContactいるかどうかを確認する必要があります。

基本的に、内部(またはプライベートのネストされた) 型を返すパブリックプロパティを持つことはできません。これは事実上、「これを使用できますが、私が返すものについて何も知ることは許可されていません」と言っているでしょう。わかる。通常のメソッドのパラメータと戻り値の型についても同様です。内部クラスからパブリック クラスを派生させることもできません。

于 2012-05-10T05:54:55.860 に答える
0

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

于 2012-05-10T05:45:45.873 に答える