각기 다른 매개 변수 유형으로 구성된 응용 프로그램이 있습니다. 각 응용 프로그램은 매개 변수 개체와 선택적으로 연결할 수 있습니다.System.NullReferenceException 대신 빈 문자열을 반환합니다. 오류
다음은 나중에 다시로드하기 위해 XML 파일에 저장됩니다. 컨트롤을 매개 변수에 연결하려면 지정된 위치에 컨트롤이 매개 변수 ID를 저장합니다. 이것은로드하는 동안 검색되고 다시 링크됩니다.
그러나 선택 사항이므로 매개 변수를 지정하지 않으면 이해할 수있는 ID에 액세스 할 때 NullReferenceException이 발생합니다. 내가 문제의 라인 주위에 수표를 넣어 이것을 해결할 수 있습니다. 그러나 나는이 기본적인 예제에서 보여준 많은 다른 컨트롤 타입과 하나 이상의 참조를 위해 이것을해야 할 것이다.
내 질문은 우아한 방법으로이 호출이이 예외 대신 빈 문자열을 반환하도록 허용하는 것입니까? (6 C 번호에서 사용 가능)
public class Parameter
{
public string ID;
}
public class LabelCtrl
{
public string Name;
public Parameter LinkedParameter;
}
public class XMLManager
{
public void SaveControl(ControlInstance_LabelCtrl ci)
{
xmlWriter.WriteStartElement("ControlInstance_LabelCtrl");
{
xmlWriter.WriteElementString("Name", ci.Name);
// Elegant way to insert empty string instead of causing NullReferenceException error
xmlWriter.WriteElementString("LinkedParameter", ci.LinkedParameter.ID);
}
xmlWriter.WriteEndElement();
}
}
Try/Catch를 사용하지 않는 이유는 무엇입니까? 또는 나는 무엇인가 놓치고 있냐? – uTeisT
예외를 막을 수있는 이유는 무엇입니까? @uteist –
내 말은, 그냥 try/catch에 넣고 catch 한 경우 String.Empty를 반환합니다. 또는 x가 null 인 경우 블록을 수행합니다. 뭔가 빠졌는지 아직도 궁금해. @PatrickHofman – uTeisT