내 마음에 같은 일을해야한다는 두 명령의 차이점을 이해하는 데 어려움이 있습니다. 어떤 것이 불분명 한 경우를 대비하여 아래에 전체 코드를 게시했습니다.string.join이 VB.Net의 목록 객체를 반환하는 이유
저는 Person 클래스에 두 개의 함수를 만들었습니다. 첫 번째, 중간 및 마지막 이름을 포함하는 목록을 반환하는 함수와 연결된 이름의 문자열을 반환하는 함수를 반환합니다. 내가 전화 할 때, 그러나
FullName = String.Join(" ", Me.Get_NameList())
: 나는 아래 줄을 사용하여 문자열을 연결하는 목록을 반환하는 함수를 참조
Console.WriteLine(Person1.Print_Name())
내가 대신 문자열의리스트 객체 모양을 얻을 :
System.Collections.Generic.List`1[System.String]
나는이처럼 보이도록 코드를 변경하는 경우 :
Public Function Print_Name()
Dim FullNameList As List(Of String) = Me.Get_NameList()
Dim FullName As String
FullName = String.Join(" ", FullNameList)
Return FullName
End Function
개
콘솔 지문 :
John Q Doe
이유는 먼저 가입 한 후 변수 목록을 할당하고로 다른 대답을 무엇입니까? 이것은 목록이 메모리에 저장되는 방법과 관련이 있습니까?
도움을 미리 감사드립니다. (당신이 반환 유형을 지정하지 않기 때문에) 개체를 반환 GetNameList
Imports System
Module Module1
Sub Main()
Dim Person1 As New Person("John", "Q", "Doe")
Console.WriteLine("Get_Name Values")
Dim g1 As List(Of String) = Person1.Get_NameList()
Console.WriteLine(String.Join(" ", g1))
Console.WriteLine("Print_Name Values")
Console.WriteLine(Person1.Print_Name())
End Sub
End Module
Class Person
Private FirstName As String
Private MiddleName As String
Private LastName As String
Public Sub New(ByVal Fn As String, ByVal Mn As String, ByVal Ln As String)
FirstName = Fn
MiddleName = Mn
LastName = Ln
End Sub
Public Function Get_NameList()
Dim NameList As New List(Of String)
NameList.Add(FirstName)
NameList.Add(MiddleName)
NameList.Add(LastName)
Return NameList
End Function
Public Function Print_Name()
'Dim FullNameList As List(Of String) = Me.Get_NameList()
Dim FullName As String
FullName = String.Join(" ", Me.Get_NameList())
Return FullName
End Function
End Class
fyi - 일반적으로 명시 적 리턴 유형없이 함수를 갖는 것은 좋지 않습니다.용의자가 함수에서 반환하는 형식이 문제를 해결할 수 있는지 또는 문제를보다 분명하게 만드는 컴파일러 오류를 강제로 발생시키는 지 여부입니다. 오, 그리고 당신은 Option Infer 또는 Option Explicit을 가지고 있습니다, 맞습니까? –
'Option Strict On'을 켜십시오. 꺼두면 문제를 찾을 수 없게됩니다. – Ryan
단지 참고 사항이지만 목록을 가져온 다음 연결하는 것보다는 Print_Name에 연결된 문자열을 반환하는 것이 좋습니다. 또는'String.Format'을 사용하십시오 – musefan