컬렉션 또는 문자열을 반환하는 함수에서 Microsoft는 C#의 경우 빈 컬렉션 혹은 빈 문자열을 권장하고 있다고 하네요.
링크된 글에 설명된 이유는,
1. Null을 반환할 경우 NullReferenceException이 날 경우를 대비해야한다는 reliability 문제.
2. Null도 반환되고 empty 컬렉션/문자열도 반환된다면 이 두가지 모두를 함수를 호출한 곳에서 체크해야하는데 어차피 두경우 모두 처리가 비슷할 것이니 합치는게 낫다는 점.
3. .Net이 그렇게 쓰여져있다는 점입니다.
물론 Null이 꼭 필요한경우도 있겠죠. 아예존재하지 않는 경우(Null)과 있지만 내용이 없는 경우(empty)는 구분이 필요할 수 있으니까요. 하지만 그렇지 않다면 고려해볼만한 코딩 디자인 기준입니다.