sto rovistando alcune DLL nel quadro XNA utilizzando ILSpy e sono imbattuto in questo:Odd sintassi membro della classe mostrata in ILSpy
class KerningHelper
{
private void !KerningHelper()
{
((IDisposable)this).Dispose();
}
}
Qual è il punto esclamativo per in quanto sopra? Si tratta di un problema con ILSpy o qualcos'altro?
Nota: la classe ha un distruttore separato: private unsafe void ~KerningHelper()
.
In CLI/C++ il! KerningHelper simboleggia un 'finalizzatore' piuttosto che un' distruttore', forse è qualcosa a che fare con questo? Dai un'occhiata qui: http://en.wikipedia.org/wiki/C%2B%2B/CLI#Finalizers_and_automatic_variables – Nick
Non è valido C# in entrambi i casi, quindi sto indovinando una rappresentazione di IL che viene poi tradotta leggermente sbagliato. –
@AdamHouldsworth: ho controllato la scrittura della mia classe con quella e sono giunto alla stessa conclusione. Sono interessato a ciò che era in origine/a cosa serve/cosa è la sintassi originale. :) –