我在VbScript中有下面的代码来检查有效的导航条目。处理C#2.0动态条目的子字符串函数以避免错误“索引和长度必须引用字符串中的位置”。
'==============================================
' Function to test if a given item title is valid navigation item or not
' Checks for '. ' in the first 5 characters of the title
'==============================================
Function CheckValidTitle(ByVal Title)
If Len(Title)=0 Then
CheckValidTitle=False
Exit Function
End if
If InStr(Left(Title, 6), ". ")>0 Then
CheckValidTitle=True
Else
CheckValidTitle=False
End if
End Function
如进一步,我在C#2.0写相同功能的逻辑,以下是代码:
public static bool CheckValidTitle(string title)
{
bool retvalue;
if (title.Length == 0)
{
retvalue = false;
return retvalue;
}
string partTitle = title.Substring(0, 5);
if (partTitle.Contains(". "))
{
retvalue = true;
}
else
{
retvalue = false;
}
return retvalue;
}
现在,如果标题是一个长名称然后上述C#功能工作正常,例如,如果
title = "FAQ Popup New";
//然后正常工作,因为它是具有长在它超过5个字符,但如果
title = "ASPX";
//它未能作为字符小于5并给出错误“索引和长度必须引用字符串中的位置”。
根据要求,标题名称将是动态的,并且可以是任何字符数。我很惊讶它如何在VBScript中正常工作,因为写入的逻辑是相同的。
我想要经常检查前5个字符是否有“。”,那么它是有效的标题,否则它是无效的。
请建议什么可以是以上问题的最佳解决方案。
谢谢。
内我们是否需要检查!string.IsNullOrEmpty(title)也是? – 2011-12-28 09:30:35
如果标题可能为空,那么是的,你应该。但是你的代码没有检查null,所以我决定不检查。 '空'的情况已经在我的代码中通过i> = 0的检查来处理。 – 2011-12-28 09:32:20
是的,可能会出现标题可能为空的情况,所以我们需要在retvalue = i <5 &&中加上这个! string.IsNullOrEmpty(标题);返回retvalue;请建议! – 2011-12-28 09:34:33