매개 변수 전달과 관련된 프로 시저를 사용 중이며 전달되는 매개 변수는 변수입니다. 다른 매개 변수의 데이터 형식을 명시 적으로 선언했기 때문에이 매개 변수에 대해 동일한 작업을 수행해야합니다. 매개 변수를 변수 인 것처럼 어떤 데이터 형식으로 선언합니까? 감사합니다.다양한 유형의 매개 변수 전달
답변
VB.NET에서는 Object를 유형으로 사용할 수 있지만 Option Strict가 해제되어 있습니다. 이 경우 모든 매개 변수를 전달할 수 있습니다. 자세한 내용은 다음을 참조하십시오. https://stackoverflow.com/a/2890023/3660930
당신이하고있는 일과 당신이 다루고있는 유형이 좋았을 것입니다. 당신은 다른 매개 변수 유형을 제공하기 Overloading
을 구현할 수 있습니다
Friend Function FooBar(n As Integer) As Integer
Friend Function FooBar(n As Int64) As Integer
Friend Function FooBar(n As Short) As Integer
컴파일러는 데이터 유형이 전달되는 일치하는 기능을 선택할 것입니다. 내부적으로는 전달 된 Type을 기반으로하는 모든 작업을 수행 한 다음 다른 프로 시저를 호출하여 모든 작업을 수행 할 수 있습니다.
아마도 작업에 필요한 유형이 한정되어있을 수 있습니다. 예를 들어 Font
, Point
및 Rectangle
은 아마도 의미가 없습니다. Date
조차도 Int 또는 Long과 같은 방식으로 날짜를 처리 할 수 없으므로 모호합니다. String
도 유효한 정수가 포함되어 있다면 항상 FooBar(CInt(someString))
으로 전달할 수 있기 때문에 필요하지 않습니다. 함수 반환이 전달 된 매개 변수 Type
에 따라 달라집니다 경우
Private Function FooBar(Of T)(parm As T) As Integer
' called as:
ziggy = FooBar(Of Int32)(n)
zoey = FooBar(Of String)(str)
이도 Private Function FooBar(Of T)(parm As T) As T
수 있습니다 :
당신은 또한 당신이 전달하는 어떤 기능을 알려줄 수있는 일반적인를 사용할 수 있습니다. 이 중 많은 용도가 있습니다 (하나는 이고은 매개 변수를 Object
으로 전달하지 않음). 원하는 모든 유형을 전달하는 일반적인 방법으로는 좋지 않습니다. 내부적으로는 큰/다른 경우 자신의 방식으로 다른 유형을 처리합니다.
원하지 않는 모든 유형의 변환이 발생할 수 있기 때문에 Option Strict
을 해제하는 것은 결코 바람직하지 않습니다.
코드를 보여주십시오. – ja72