2013-03-30 1 views
2

아래 코드는 문자열이 ""Get 메서드를 보여줍니다. search가 null 이외의 디폴트 값을 가지고 있으며, 변경되지 않을 경우 C# 매개 변수의 기본값은 null 일 수 있습니까?

Image showing null value for a parameter that has a default value

어떻게 값이 null의 가능성이 될 수 있는가?

+5

매개 변수가 있지만 null이지만 기본값은 사용되지 않습니다. –

+0

Get for MainView는 어떻게 부르십니까? –

+0

이것은 웹 API이므로 전달되는 값을 확인하기 위해 원시 요청을 확인해야 할 수 있습니다. –

답변

12

검색에 null이 아닌 기본값이 있고 변경되지 않은 경우 값이 null 일 수 있습니까?

null을 메서드 또는 null 인 변수에 명시 적으로 전달하면 기본값이 사용되지 않습니다.

매개 변수없이 호출하면 기본값이 사용되며,이 경우 컴파일러에서 기본값을 "채 웁니다". null 또는 null 인 객체 변수를 포함하여 메서드를 호출하면 null 값이 반환됩니다.

+1

메서드가 FooCorp.DLL이고 BarCorp.DLL이 호출자이고 FooCorp가 메서드의 기본값을 변경하면 해당 어셈블리도 다시 컴파일되지 않는 한 BarCorp.DLL의 호출은 이전 값을 계속 사용한다는 것을 언급 할 가치가 있습니다. –

+1

매우 사실 - 내가 말했듯이, 컴파일러는 컴파일시에 디폴트 *를 "채운다". 이것은 일반적인 기본 인수의 단점이다. –

관련 문제