参照型オブジェクトをメソッドに渡して、そこから変更しようとしています。それを変更すると、メソッドに渡される変数にその変更はありません。
次に例を示します。
public interface IPerson
{
string Name { get; }
}
public class Teacher : IPerson
{
public string Name { get; set; }
public string LastName { get; set; }
}
//......
public void CreateTeacher(IPerson teacher)
{
teacher = new Teacher() { Name = "Teacher name", LastName = "Teacher's last name"};
}
//.....
//I am trying this, but after I call CreateTeacher() variable teacher is null
IPerson teacher=null;
CreateTeacher(teacher);
string n = teacher.Name;
CreateTeacher()変数の教師を実行した後も null ですか? 誰でも理由を説明できますか?メソッドに戻るか、 を使用できることはわかってIPersonいますが、それらを使用することはできません。CreateTeacher()out
IPersonインターフェイスは別の dll にあり、クラスTeacherは別の dll にあります。メソッドCreateTeacherは、クラスと同じ dll です。
アップデート:
これが私が試した他のものです:
IPerson teacher=new Teacher();
CreateTeacher(teacher);
string n = teacher.Name;//I have the changes here now
//......
public void CreateTeacher(IPerson teacher)
{
((Teacher)teacher).Name = "My Name";
}
1 番目の例と 2 番目の例の違いは何ですか? 渡された値がだったからnullですか?
助けてくれてありがとう!