-1

私の人のクラス:

 class Person
{
    public string FirstName { get; private set; }
    public string LastName { get; private set; }
    public int Age { get; private set; }

    public Person(string firstName,string LastName,int age)
    {
        this.FirstName = firstName;
        this.LastName = LastName;
        this.Age = age;


    }

    public override string ToString()
    {
        return this.FirstName + " " + this.LastName + " " + this.Age;

    }



}

主要:

 class Program
{
    static void Main(string[] args)
    {
        Person sallyPerson = new Person("Sally", "Solomon",23);

    }
}

その人の名前と年齢を変更したいとしましょう。どうすれば変更できますか? FirstName および Age プロパティは非公開で設定されます。

4

5 に答える 5

3

プロパティを公開することができます-

class Person
{
    // changed private set; to set;
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
}
于 2013-05-02T22:17:40.953 に答える
1

ですから、すべての回答は、あなたが尋ねている質問が単なる例ではなく、文字通りあなたが尋ねている質問であると想定していることに気づきました. しかし、単に例として使用しだけで、実際にはソースを制御していないオブジェクトのプライベート プロパティを設定する必要があるのではないでしょうか? その場合、それは一般的に悪い考えだと思いますが、とにかくそれを行う必要がある場合は、方法があります. この方法は「リフレクション」と呼ばれます (これは、必要に応じてリフレクションで実行できるさまざまな種類のスケッチの 1 つにすぎません)。それが実際にあなたが求めているものである場合、これはあなたが見たいと思うかもしれない質問です.

ただし、そのクラスのソースを制御していて、それらを変更したい場合は、プロパティをプライベートにしないでください。

于 2013-05-02T22:24:44.947 に答える