이 스타일에 반대되는 장단점이 있는지 궁금합니다.
private void LoadMaterial(string name)
{
if (_Materials.ContainsKey(name))
{
throw new ArgumentException("The material named " + name + " has already been loaded.");
}
_Materials.Add(
name,
Resources.Load(string.Format("Materials/{0}", name)) as Material
);
}
이 방법은 각각에 대해 name
한 번만 실행 해야합니다 . _Materials.Add()
같은 시간에 여러 번 호출되면 예외가 발생합니다 name
. 결과적으로 경비원이 완전히 중복되거나 덜 명백한 이점이 있습니까?
누군가 관심이 있다면 C #, Unity입니다.
string.Format
예외 메시지를 작성하기 위해 문자열 연결을 사용 하는 것이 좋습니다. 2) as
캐스트가 실패 할 것으로 예상되는 경우 에만 사용 하고 결과를 확인하십시오 null
. 항상을 얻으려면 다음 Material
과 같은 캐스트를 사용하십시오 (Material)Resources.Load(...)
. 명확한 캐스트 예외는 나중에 발생하는 널 참조 예외보다 디버그하기가 더 쉽습니다.
LoadMaterialIfNotLoaded
또는 ReloadMaterial
이 이름으로 개선이 가능할 수도 있습니다.
_Materials.Add
예외를 던져?