ここで、Person
はクラスであるため、参照型で、別の関数でパラメータとして渡してそこに代入するときに変更する必要があります。パラメータとして渡すときに参照型に値が割り当てられないのはなぜですか?
ChangePerson
に電話をした後にprogram.person
がヌルになるのはなぜですか?
namespace IndirectlyPropertySet
{
class Program
{
public Person _person;
public Person person
{
get { return _person; }
set
{
if (_person != value)
{
_person = value;
}
}
}
static void Main(string[] args)
{
Program program = new Program();
ChangePerson(program.person);
// Why program.person is null after executing this ?
program.person = new Person() { Name = "b", Age = 2 };
}
static void ChangePerson(Person p)
{
Person pe = new Person() { Name = "a", Age = 1 };
p = pe;
}
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
}
program.personはどこに渡しますか? program.person = new Person(){Name = "b"、Age = 2}と書く必要があります。 changeperson()とmorevoerを呼び出す前に、出力として取得しようとしていることがわかりません – Milee