2

参照によって参照オブジェクトを渡すと、どのように役立つでしょうか。通常の使用方法は次のとおりです。

public static void main()
{
    Student st = new Student();
    st.FirstName = "Marc";
    PutLastName(st);
    Console.WriteLLine(st.FirstName + " " + st.LastName);
}

public static PutLastName(Student student)
{
    student.LastName = "Anthony";
}

同じことを行い、出力する次のように書く人がいるでしょうか: "Marc Anthony":

public static void main()
{
    Student st = new Student();
    st.FirstName = "Marc";
    PutLastName(ref st);
    Console.WriteLLine(st.FirstName + " " + st.LastName);
}

public static PutLastName(ref Student student)
{
    student.LastName = "Anthony";
}
4

4 に答える 4

0

参照ごとに参照を渡すと、参照されるデータを編集できるだけでなく、それ自体が参照しているオブジェクトを変更することもできます。

違いは次の用途にあります。

// from the Main's point of view, this function does absolutely nothing
public static PutLastName(Student student)
{
    student = new Student();
}

// This would clear Main's student.
public static PutLastName(ref Student student)
{
    student = new Student();
}

http://msdn.microsoft.com/en-us/library/14akc2c7.aspxを参照してください

于 2013-09-06T02:56:17.963 に答える
0

2 番目のバージョンでは、ref は PutLastName が st を変更できることを意味します。

于 2013-09-06T02:54:49.957 に答える
0

基本的に、参照渡し (refまたはout) は、型 (参照型またはその他の型) に関係なく同じことを行います。これにより、関数内のパラメーターへの割り当てが、呼び出し元で渡された元の変数への割り当てと同じ効果を持つことができます。範囲。参照渡しでない場合、これは決して起こり得ません。

于 2013-09-06T09:33:47.830 に答える