0

必要になるまで同じコードを書きたくありません。

基本クラスがあるはずです(インターフェースが合わないと思います)

public class MyUser
{
    public string Username
    {
        get;
        set;
    }
    //...many other fields
}

派生クラスの 1 つで、PRIVATE セット修飾子 (このクラスのメソッドのみ) が必要です。

public class MyPrivateInfo : MyUser//, IMyUser
{
    public string Username
    {
        get;
        private set;
    }
}

他のクラスでは、INTERNAL 修飾子 (ライブラリ全体のスコープ) が必要です。

public class MyLibInfo : MyUser//, IMyUser
{
    public string Username
    {
        get;
        internal set;
    }
    //...many other fields
}

タイプ MyUser のフィールドを作成する方法があると思いますが、それは目的ではありません。フィールドは、各クラスで直接アクセスできる必要があります。

これを達成するための最良の方法は何ですか?それともありませんか?

4

1 に答える 1

2

まず、これにはインターフェースを使用できます。setメソッドを指定する必要はありません。

これにより、必要な a のアクセシビリティを定義できますset

public interface IUser
{
    string Username { get; }
}

public class MyPrivateInfo : IUser
{
    public string Username
    {
        get;
        private set;
    }
}

public class MyLibInfo : IUser
{
    public string Username
    {
        get;
        internal set;
    }
}
于 2012-11-15T12:11:09.550 に答える