Again, what’s in a name? (R)

“But it’s written in the starlight
And every line on your palm
We’re fools to make war
On our brothers in arms

(“Brothers in Arms”, Dire Straits, 1985)

Este post contiene la respuesta a la pregunta del post anterior.

Efectivamente, la respuesta a la pregunta tiene que ver con la interoperabilidad entre lenguajes .NET. El atributo IndexerName que hemos asociado a nuestro indexador de la clase Friend facilita la utilización de aquél desde ensamblados creados con otros lenguajes de la familia .NET en los cuales el acceso a los indexadores se lleve a cabo a través de propiedades comunes y corrientes. Sin la presencia de este atributo, el indexador que hemos añadido a nuestra colección personalizada sería en esos lenguajes prácticamente inaccesible (al menos de manera directa: mediante reflexión, por supuesto, se podría acceder a él; pero no sería, por ejemplo, descubrible mediante Intellisense). Y no es cosa de “hacerle la puñeta” a nuestros “hermanos de armas” que programan otros lenguajes…

Debemos aclarar que cuando decimos “otros lenguajes” *no* estamos incluyendo a Visual Basic, desde el que se podrá acceder al indexador tanto mediante el nombre que hemos definido (Names) como omitiéndolo, ya que esta propiedad se convertirá en la propiedad por defecto en lugar de Item. Curiosamente, si se omite el atributo IndexerName (o se le asocia el valor “Item“), nuestro indexador se verá desde VB como una sobrecarga de la propiedad vectorial por defecto Item.

A continuación se muestra un ejemplo de programa en VB que hace uso del indexador en cuestión:

Imports Demo.Friends

Module Module1

    Sub Main()

        Dim TheList As New FriendsList()
        TheList.Add(New [Friend](“pepe”, #1/1/1980#))
        Console.WriteLine(TheList(“pepe”).Name)   ‘ Names es ahora la propiedad por defecto
        Console.ReadLine()
    End Sub

End Module

Por cierto, ¿sabe por qué el nombre de la clase Friend está entre corchetes en el ejemplo? Pues claro que sí: Friend es una palabra reservada en VB, y con los corchetes le indicamos al compilador que reconozca ese lexema como un identificador cualquiera y no como una palabra reservada. Todo lenguaje .NET que se precie debe ofrecer algún mecanismo similar; pero de eso ya hemos hablado aquí antes.


Pop/Rock tip: Dire Straits ha sido uno de los grupos británicos de más éxito de las últimas décadas, desde que en 1978 tomara por asalto las emisoras de radio de medio mundo con su conocido tema “Sultans of Swing” (yo estaba allí :-). Personalmente, me quedo con sus cuatro primeros discos: “Dire Straits” (1978), “Communiqué” (1979), “Making movies” (1980) y “Love over Gold” (1982), que dieron lugar a temas inolvidables como el ya mencionado “Sultans of Swing“, “Down to the Waterline“, “Once upon a Time in the West“, “Telegraph Road“. “Tunnel of Love” o “Romeo and Juliet” (la conexión entre este post y el anterior :-). “Brothers in Arms” es precisamente el tema que dio título al quinto álbum de la banda, con el que comenzó una etapa más comercial.

Después de la disolución de la banda, su guitarrista, Mark Knopfler (uno de los poquísimos guitarristas de rock que, gracias a su estilo personalísimo, se reconocen a los pocos compases de comenzar a tocar), ha continuado publicando discos y dando giras. En particular, ha estado varias veces en España, país al que menciona en su obra:

“Oh girl it looks so pretty to me / Like it always did
Like that Spanish city The Spanish City to me / When we were kids”
(“Tunnel of Love”, Dire Straits, 1980)

 

Octavio Hernandez

Desarrollador y consultor en tecnologías .NET. Microsoft C# MVP entre 2004 y 2010.

3 comentarios en “Again, what’s in a name? (R)

  1. Además comentar que para aquellos que nos gusta tocar la guitarra, Mark Knopfler es una maldición. Tiene un estilo tan particular y complicado que cuesta mucho, pero mucho sacar un sonido parecido a él !!! Pero qué placer que es tratar y mucho más escucharlo 😀

    Saludos

  2. @Bruno,

    Un placer tenerte por aquí! Efectivamente, los riffs de Mark Knopfler son especialmente complicados…

    @Sentoki,

    ¡Gracias por la referencia! Ahora sé que The Spanish City tiene tanto que ver con España como el barrio japonés de San Francisco con Japón…

    En particular, como moraleja de esto saco varias cosas:

    a) Que siempre se aprende algo nuevo 🙂

    b) Cuán difícil es entender al 100% lo que dice una canción en un idioma y un contexto que no son tus nativos.

    c) La importancia de unas mayúsculas bien puestas, algo de lo que hablo frecuentemente con mi buen amigo Paco Marín (dotNetManía).

    Saludos – OH

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *