VB9에서 여러 줄 Function 문제 해결(Visual Studio 2008)
1560 단어 function
List (Of T) 에는 Find 와 FindAll 함수가 포함되어 있습니다. 이 두 함수는 하나의 함수인 Predicate (Of T) As Boolean을 예로 들면 바로 이렇게 시도할 수 있습니다 (예시적 코드).
Public Function MyFunc(t As T) As Boolean
………………
End Function
List(Of T).Find/FindAll(MyFunc)
………………
사실 우리는 봉인할 수 있다.
Public MustInherit Class BasePredicate(Of T As IComparable)
Public Shared Widening Operator CType(ByVal subclass As BasePredicate(Of T)) As Predicate(Of T)
Return New Predicate(Of T)(AddressOf subclass.GeneralDo)
End Operator
Public MustOverride Function GeneralDo(ByVal t As T) As Boolean
End Class
이 클래스는 CType의 Widening 방법을 사용합니다. (자동으로 클래스를 하나의 Predicate로 변환합니다. Predicate의 필요 매개 변수는 공교롭게도 하위 클래스가 반드시 실현해야 하는 추상적인 클래스GeneralDo입니다. 예를 들어 하위 클래스처럼 실현됩니다.
Public Class IntFindAll
Inherits BasePredicate(Of Integer)
Public Overrides Function GeneralDo(t As Integer) As Boolean
Return t Mod 2 = 0
End Function
End Class
그러면 하위 클래스는 다음과 같이 호출할 수 있습니다.
Public Class Program
Shared Sub Main(args As String())
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
For Each i As Integer In numbers.FindAll(New IntFindAll())
Console.WriteLine(i)
Next
End Sub
End Class
내 생각에 이것은 VS2008에서 VB가 C#의 기능을 잃어버려서 VB의 일부 프로그래머들이 마음의 불균형을 초래한 것을 보완할 수 있을 것 같다. 아하하......
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
콜백 함수를 Angular 하위 구성 요소에 전달이 예제는 구성 요소에 함수를 전달하는 것과 관련하여 최근에 직면한 문제를 다룰 것입니다. 국가 목록을 제공하는 콤보 상자 또는 테이블 구성 요소. 지금까지 모든 것이 구성 요소 자체에 캡슐화되었으며 백엔드에 대한 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.