Tôi chọc xung quanh một vài dlls trong khuôn khổ XNA sử dụng ILSpy và đi qua này:Odd cú pháp thành viên lớp thể hiện trong ILSpy
class KerningHelper
{
private void !KerningHelper()
{
((IDisposable)this).Dispose();
}
}
dấu chấm than cho ở trên là gì? Đây có phải là vấn đề với ILSpy hay một vấn đề khác?
Lưu ý, lớp học có một destructor riêng biệt: private unsafe void ~KerningHelper()
.
Trong CLI/C++, KerningHelper sẽ tượng trưng cho 'finalizer' chứ không phải là' destructor' có lẽ nó liên quan đến điều đó? Có một cái nhìn ở đây: http://en.wikipedia.org/wiki/C%2B%2B/CLI#Finalizers_and_automatic_variables – Nick
Nó không phải là hợp lệ C# một trong hai cách, vì vậy tôi đoán một số đại diện IL mà sau đó được dịch trở lại một chút sai rồi. –
@AdamHouldsworth: Tôi đã kiểm tra viết lớp của riêng mình với điều đó và đi đến cùng một kết luận. Tôi quan tâm đến những gì nó đã được ban đầu/những gì nó cho/cú pháp ban đầu là gì. :) –