Procedures como parametro: TProcedure

Delphi

24/12/2006

Na VCL Win32 eu posso criar uma função com um parâmetro do tipo TProcedure, onde posso passar uma procedure como argumento da função. Alguém sabe como fazer isso na VCL .NET ou em .NET?


Marcosalex

Marcosalex

Curtidas 0

Respostas

Massuda

Massuda

24/12/2006

Em .NET não tem o conceito de ´ponteiro para função/procedure´, o que existe é ´delegação´ ([i:7e1a3bc5e3]delegate[/i:7e1a3bc5e3]). Um exemplo, em C#...
public delegate int FuncaoDeComparar(object x, object y);

public int Comparar(object x, object y) { ... }

public void Ordenar() {
 
  FuncaoDeComparar comparador = new FuncaoDeComparar(Comparar);
  // comparador pode ser usado aqui ou passado para outra função
 
  if (comparador(x, y) == 0) {
    // x e y são iguais
  }
  else {
    // x e y são diferentes
  }  
}
...infelizmente, não tenho idéia de como fica isso em Delphi.NET.


GOSTEI 0
POSTAR