Qual tipo é herdado duma array em .NET?

Se declaramos uma List, temos certeza que seu tipo é explicitamente o System.Collections.Generic.List<T>.

Mas e quando declaramos um Array? Qual é o tipo genérico implementado por trás da mesma?

Exemplo:

string[] objeto = {"Olá,", " mundo!"}; 

Ao obtermos o Type.FullName de objeto, temos um "System.String[]" como saída, mas nenhum tipo que implementa ou herda a classe. Isso não nos esclarece nada a respeito.

Assim como uma List<>, Arrays também tem funções e métodos nativos.

A pergunta é: de que classe vêm estes métodos? Basicamente, preciso saber se um tipo T[] há alguma classe, estrutura ou interface implementável e mutável por tipo, de forma que seja possível realizar uma declaração explícita, por exemplo:

public void foo(string[] array) { ... } ... System.Collections.Generic.TipoAnonimo<string> bar = {"foo", "bar"}; foo(bar);  // OK 

Observação: não pretendo usar Linq nestas operações.

Criar uma label a partir de um item duma listbox

Eu estou a tentar criar uma aplicação prototipo para mapear uma rede. A aplicação parece assim: inserir a descrição da imagem aqui

É constituida por 2 botões, um para scan que vai preencher a lista na direita com os dados pretendidos e um segundo botão (placeholder) que devia criar uma label arrastável (sendo esta a dificuldade) com o texto equivalente ao item da lista que tenho selecionado para que, assim que seja criada, eu possa arrastar essa mesma label para cima do mapa de forma a mapear o computador na minha aplicação.

Já passei por várias tentativas, até agora sem sucesso… nem tenho a certeza de que o quero criar (label arrastavel) ser possivel. Para já ficava já satisfeito com a label em si aparecer.

O que tentei até agora foi:

 private void button2_Click(object sender, EventArgs e)     {         Label lbl = new Label         {             Text = listBox1.SelectedItem.ToString()         };     } 

Tambem tentei integrar a seguinte solução mas sem sucesso.

Peço então aqui, há alguma maneira de criar uma label a partir duma seleção dum item numa listbox? E se sim, é possível essa label ser arrastada durante o runtime?

Obrigado desde já.

Ocorre um erro ao imprimir um Documento Pendente a partir duma aplicação externa com o Primavera v9

Função C#:

string Report = "GCCTAdi1"; string Titulo = "Adiantamentos"; string Destino = "W"; short NumVias = 1; string Documento = "S"; //Testei com "S" e com "N" string Formula = "{Historico.Id}='"+ IdHistorico +"'";  PriEngine_v9.Platform.Mapas.Inicializar("GCP"); PriEngine_v9.Platform.Mapas.ImprimeListagem(Report, Titulo, Destino, NumVias, Documento, Formula); 

Mensagem de Erro:

Managed Debugging Assistant PInvokeStackImbalance

Message=Managed Debugging Assistant PInvokeStackImbalance:

‘A call to PInvoke function Primavera.Platform.Reports900!ReportViewerUC::SetWindowLong has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature. Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature.’

Análise:

O mesmo código no Editor VBA do Erp, funciona perfeitamente;

Ao fazer o Debug, reparei que a aplicação está à procura da seguinte DLL:

C:\Program Files (x86)\Common Files\PRIMAVERA\SG900\Primavera.Platform.Reports900.resources.dll 

que não encontra;

Alguém sabe o que me falta colocar?