개체를 일부 기본값으로 '다시 설정하는 중'문제가 있습니다.작동하지 않는 개체를 다시 초기화하십시오.
그래서 저는 MPoint 타입의 포인트 (내 클래스)라는 객체를 가지고 있습니다. 포인트가 일정 시간 이상 사용되면 포인트를 다시 기본값으로 재설정하고 싶습니다. 그래서 아래에 나와있는 CheckPointExpired라는 메서드를 만들었습니다.
문제는 메서드가 호출되고 PointUsedPoint 속성이 MaxResuse보다 큰 경우 point 객체를 null로 놓고 새 점을 만듭니다. 그러나 RunPoint 메서드에서 내 코드를 다시 디버깅 할 때 점 개체가 값을 변경하지 않았 음을 알 수 있습니다. 왜 그런지 모르겠다 고요?
PointPoint 객체를 CheckPointExpired 메서드에 전달하면 참조로 전달되므로 객체에 대한 변경 사항이 RunPoint 메소드에 반영되어야합니다. 분명히 나는 뭔가를 이해하지 못하고있다.
public MPoint RunPoint(MPoint point)
{
// first check if point has expired
CheckPointExpired(point)
// rest of my code
}
void CheckPointExpired(MPoint point)
{
if (point.PointUsed >= point.MaxResuse)
{
int lvl = point.Level;
int maxLB = point.MaxLookBack;
int maxReuse = point.MaxResuse;
int order = point.Order;
point = null;
point = new MPoint(maxReuse, maxLB, lvl, order);
}
}
나는 본다. 나는 당신이 객체를 통과 할 때 그것이 디폴트로 참조로 전달 된 줄 알았습니까? 그래서 객체는 실제로 전달 될 때 복사됩니까? – mHelpMe
@mHelpMe 개체의 참조가 개체 자체가 복사되지 않습니다. –