/// <summary>
/// 记录注释的位置和长度
/// </summary>
/// <param name="sText"></param>
/// <returns></returns>
/// 创建时间: 2022-08-26 最后一次修改时间:2022-08-26
public static DList_<Pair_<int,int>> _Syntax_C_ExplanatoryNote_Pos(this string sText)
{
DList_<Pair_<int, int>> dResult = new DList_<Pair_<int, int>>();
for (int i = 0; i < sText.Length; ++i)
{
if (sText[i] == '/')
{
if (i + 1 < sText.Length)
{
if (sText[i + 1] == '/')
{
int nStart = i;
i = sText.IndexOf('\n', i + 1);
if (i == -1)
{
dResult.Add(new Pair_<int, int>(nStart, sText.Length - i));
break;
}
else
{
dResult.Add(new Pair_<int, int>(nStart, i - nStart));
}
}
else if (sText[i + 1] == '*')
{
int nStart = i;
i = sText.IndexOf("*/", i + 1);
if (i == -1)
{
dResult.Add(new Pair_<int, int>(nStart, sText.Length - i));
break;
}
else
{
dResult.Add(new Pair_<int, int>(nStart, i - nStart + 2));
}
}
}
}
}
return dResult;
}
其中,DList_,Pair_,你可以换成 List,Pair。
下面是 Visual studio C# 中的 RichTextBox 中着色