using System.Text.RegularExpressions; using CodePlay.Core.Interfaces; using CodePlay.Core.Models; namespace CodePlay.Core.Pipeline.Converters; /// /// 修饰符移除器 - 移除 virtual, override, sealed, readonly 等 C# 特定修饰符 /// public class ModifierRemover : ILineConverter { public int Priority => 45; public string Convert(string line, ConversionContext context) { var result = line; result = Regex.Replace(result, @"\bvirtual\s+", ""); result = Regex.Replace(result, @"\boverride\s+", ""); if (result.Contains("sealed")) { result = Regex.Replace(result, @"\bsealed\s+(\w+\s+class)", "final $1"); } if (result.Contains("readonly")) { result = Regex.Replace(result, @"\breadonly\s+", "final "); } result = Regex.Replace(result, @"\bpartial\s+", ""); result = Regex.Replace(result, @"\bunsafe\s+", ""); return result; } }