Cita de: zonahurbana en 13 Julio 2015, 14:59 PMNo puedo creer que haya olvidado añadir el parámetro correspondiente al método (y que VB haya asumido tal valor como un índice).
La función ListarPorSector no recive ningún parámetro, por ende se asume que la agrupación de parámetros que utilizas () pertenece al objeto devuelto, y no a la firma de la función, pero vamos, que igualmente puedes hacer lo que mencionas de manera opcional si te resulta más familiar:
Código (vbnet) [Seleccionar]
Dim dr As DataRow = funcion()(0)
Sin embargo, mi recomendación es que utilices siempre que puedas los parámetros nombrados o pass-by-name (named parameters) para evitar confusiones la próxima vez:
Código (vbnet) [Seleccionar]
Dim dr As DataRow = funcion(index:=0)
PD:
A diferencia de esos otros lenguajes que te refieres, yo lo considero una mejora en VB.Net, por que evita confusiones al escribir agrupaciones de parámetros vacías en ciertas circunstancias, ¿para que obligar a escribirlas, si están vacias?, son inservibles y confusas, parte de código innecesario para la depuración del mismo, se que cuesta olvidar las costumbres, pero piensalo bien xD: ¿realmente es algo positivo a lo que te obligaba la sintaxis de "X" lenguaje?.
Saludos