Estoy escribiendo un programa que necesita una cola de prioridad y sería bueno si pudiera usar el que viene con .Net 6: https://docs.microsoft.com/en-us/dotnet/api/system. colecciones.generic.priorityqueue-2?view=net-6.0
Así que intenté escribir un código de muestra (en F #, pero este fragmento de código en particular podría escribirse de la misma manera en C # y esperaría que los resultados fueran los mismos):
open System.Collections.Generic ... let pq = PriorityQueue() pq.Enqueue("apple", 5) pq.Enqueue("banana", 6) checkEq (pq.Dequeue()) "apple" checkEq (pq.Dequeue()) "banana"Visual Studio está perfectamente contento con eso, el autocompletado funcionó y todo.
Intento compilarlo, y fsc no está nada contento:
C:\olivine\src\test.fs(1345,14): error FS0039: El valor o constructor 'PriorityQueue' no está definido.
Tal vez sea porque no tengo instalada la versión correcta de .Net.
reg query "HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP" /sNo hace falta decir que parece haber docenas de versiones instaladas, pero los números de versión más altos que veo parecen ser 4.x, lo que explicaría por qué fsc no está contento.
Pero entonces, ¿qué pasa con Visual Studio? ¿Cómo aceptó y entendió la referencia a PriorityQueue, a pesar de que aparentemente .Net 6 no estaba instalado en la máquina?