===
и !==
сравнить тип и :
if (strpos("abcdefghijklmnop", "http://www.") !== false){// do work}
Всегда существует финализатор в IL - Система. Объект. Завершите (), существует в каждом классе, поэтому если Вы делаете пользовательский класс, он имеет финализатор, который Вы хотите подавить. Однако не все объекты помещаются на очередь завершения, таким образом, только технически необходимо должны быть подавить завершение при реализации собственного финализатора.
, Если Вы реализуете IDisposable
для обертывания неуправляемых ресурсов, необходимо включать финализатор, и необходимо препятствовать тому, чтобы это работало, с тех пор в теории Вы уже делаете очистку, когда Dispose
назван.
Нет никакой потребности звонить GC.SuppressFinalize(this)
в, Располагают, если:
Object
, то объекту, как полагают, не нужно завершение и не помещается в список завершения на GC, который я сказал бы, предположив, что у Вас нет ни одного из вышеупомянутых случаев, что можно безопасно проигнорировать то сообщение.
Все объекты имеют метод финализатора, даже если Вы не реализовали один при помощи c# деструктора (который, как на самом деле гарантируют, не назовет GC). Это - просто хорошая практика для подавления вызова при реализации IDisposable, потому что это означает, что Вы решили выполнить завершение explictly.
Я не вижу потребности назвать SuppressFinalize (), если нет никакого определенного финализатора. Если Вы хотите быть защитными тогда, может быть хорошо иметь финализатор, а также Расположить (), таким образом, Вы не должны полагаться на клиенты, чтобы всегда звонить, Располагают (). Тогда Вы не пропустите ресурсы, когда они забудут.