0
이 방법은 값 제한으로 구조체 통과를 쉽게 피할 수있는 방법이라고 생각했지만 (실제 구조에서는 더 많은 멤버가 있음) 사용하는 것으로 나타났습니다. 구조체 내부의 대리자는 구조체 내부 멤버를 수정하지 않습니다. 단 대리자 배열의 유일한 용도 인 경우에도 마찬가지입니다.
이 위임 및 구조를 감안할 때 :
구조체 내의 대리자를 사용하여 구조체 내부 요소를 수정하지 않음
public delegate void ChangeValues();
structure Effects
{
int val1,val2,val3;
void SetValues(int index)
{
ChangeValues[] delegateArray = new ChangeValues(){this.SetValSet1,this.setValSet2,this.SetValSet3};
delegateArray[index](); //now set the values as necessary
}
void setValSet1()
{
val1=0;val2=1;val3=2;
}
void setValSet2()
{
val1=1;val2=2;val3=3;
}
void setValSet3()
{
val1=2;val2=3;val3=4;
}
}
Effects effects = new Effects();
effects.SetValues(1); //when stepping through code one sees the values change inside eh setValues functions, but the modified values are gone after leaving this function
대표는 구조의 또 다른 인스턴스를 생성 한 후 손실 될 수 사용합니까?