.net의 오버로드는 동일한 클래스에 동일한 이름을 가진 여러 메서드가 있지만 이러한 메서드의 매개변수 목록과 반환 값 유형이 다르다는 것을 의미합니다. 오버로드의 개념은 객체 지향 프로그래밍의 범위에 포함되지 않는다는 점은 주목할 가치가 있습니다. 컴파일러의 관점에서 보면 매개변수 목록과 반환 값 유형이 다르면 메서드 이름도 다릅니다. 즉, 메서드의 주소는 컴파일 타임에 결정되며 정적 바인딩입니다.
예제에서 다음을 포함하여 오버로딩의 기본 특성을 요약합니다.
오버로딩은 동일한 클래스에 존재합니다.
오버로드된 메서드는 동일한 메서드 이름, 다른 매개변수 목록을 가져야 하며 반환 값 유형은 동일하거나 다를 수 있습니다(어느 정도의 반환 값 오버로드는 연산자 암시적을 통해 달성할 수 있지만 권장되지 않습니다).
.NET 2.0은 일반 기술을 도입하므로 동일한 매개변수 목록과 동일한 반환 값 유형도 오버로드를 구성할 수 있습니다.
오버로딩은 여러 함수가 정확히 동일한 이름을 갖지만 매개변수 유형 또는 숫자가 다른 것을 의미합니다. 실제 호출은 매개변수 유형에 따라 구분됩니다.
예를 들어, 이제 Max 함수가 2개 있습니다
1)
int Max(int i,int j) { }
2)
float Max(float i,float j) { }
프로그램에서
int i,j,k; k=Max(i,j);//将调用第一个Max float x,y,z; z=Max(x,y);//将调用第二个Max
분명히 오버로딩에도 다형성이 있지만 이 다형성은 원래 코드 수준의 다형성을 기반으로 합니다. 위의 두 Max 함수는 텍스트에서 동일한 이름을 갖지만 컴파일 후에 내부 이름은 다음과 같습니다. 이 프로세스를 이름 컴파일이라고 합니다. Max를 호출하는 소스 코드를 컴파일할 때 컴파일러는 호출할 때 매개 변수를 기반으로 올바른 Max 함수를 선택하고 호출합니다.
위 내용은 .net에서 오버로딩이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!