После некоторого оскорбления я обнаружил, что это делает то, что я хочу с некоторыми (незначительными) семантическими различиями
`открытый класс m_Regex: System.Text.RegularExpressions.Regex {
public m_Regex(string pattern): base (pattern){
}
public m_Regex Pattern(string pattern){
return new m_Regex(pattern);
}
}`
Так что теперь я могу использовать шаблон, чтобы «переопределить» текущее регулярное выражение, назначив новую ссылку на объект для переменной хранения вместо замены самого экземпляра. И теперь (предположительно) предыдущая ссылка на регулярные выражения помечена для GC, так как никто больше не использует ее, а более приятный и самодокументированный
myregex = myregex.Pattern ("^ NewPattern $"); может использоваться для создания функциональной иллюзии регулярного выражения изменения шаблона, хотя я думаю, что я все же предпочел бы иметь возможность просто вызывать элемент и вызывать его полностью за сценой.
Так я прав? Соберет ли GC все используемые регулярные выражения, следуя этой схеме? Будет ли это так, даже если текущая реализация находится в области видимости? Когда происходит GC?