ref 키워드를 사용하여 StringBuilder, string 및 MemoryStream과 같은 참조 형식을 전달하는 개발자와 함께 작업합니다. 그들은 참조 자체를 실제로 변경해야하는지 여부에 관계없이이 작업을 수행합니다.ref 키워드를 사용하여 참조 형식 전달하기 기본적으로
public void ExampleMethod(ref MemoryStream ms)
{
byte b=ms.ReadByte();
...
// No changing of actual ms reference such as: ms=new MemoryStream();
}
거의 항상이 메서드는 개체를 사용하고 참조를 변경하지 않고 반환합니다. 불변의 타입, 즉 문자열의 경우, 이것은 때때로 필요 합니다만, 변경 가능한 타입의 경우는 왜입니까?
내게는 이것이 정말로 필요로하는 것보다 더 관대하다는 점에서 유지 보수가 용이하지 않은 코드로 이어질 수 있다는 점에서 약간의 "코드 냄새"가 있습니다.
그러나 개발자와 함께하기에 충분할 정도로 심각합니다. 내 intial 느낌은 예,하지만 어쩌면 너무 pedantic입니까?
@Ash - 개발자에게 http://www.yoda.arachsys.com/csharp/parameters.html –