【发布时间】:2013-09-13 23:18:36
【问题描述】:
在探索我们遗留代码的潮湿地下墓穴和尘土飞扬的地牢时,我发现了这个:
FormatString formatString = new FormatString();
if (formatString.containsAlpha(UPCE) != -1)
{
UPCLen = 11;
}
我是否遗漏了什么,或者是我对此的反应,即:formatString 怎么能包含任何东西?没有分配任何内容...它将始终为 -1,假设表示“未找到”正确吗?
更新
为了回答 cmets 中明显的普遍困惑,我认为 FormatString 是一些乱七八糟的石器时代的 .NET 东西(这个项目使用 .NET 1.1),但你是对的 - 这是一个本土类。这是构造函数:
public FormatString()
{
}
...以及 containsAlpha() 方法:
public int containsAlpha(string strToCheck)
{
const string ALPHA_CHARS = "abcdefghijklmnopqrstuvwxyz";
try
{
char[] tmpCharArry = ALPHA_CHARS.ToCharArray();
return strToCheck.ToLower().IndexOfAny(tmpCharArry);
}
catch(Exception ex)
{
Duckbill.ExceptionHandler(ex, "FormatString.containsAlpha");
return 0; // not -1?
}
}
现在我问你:“FormatString”是这个类的错误名称,还是什么?我发现它非常具有误导性(显然)。
【问题讨论】:
-
FormatString到底是什么? -
Tim 说得对,
FormatString不是 CLR 的一部分。也许它里面住着一些讨厌的小动物。 -
尝试右键单击
FormatString并选择Go To Definition。看看它的去向。 -
当您有精明的初级顾问不经意间告诉石器时代的自学者在一个单独的类中组织他们的字符串格式化函数时,您会得到这样的结果,同时坚持认为它不应该是静态的,因为他们就是这样学习的在学校,完全忽略了项目不使用任何依赖注入的部分。
-
我不确定这里的人是谁,但“石器时代的自学者”确实适合我。
标签: c# compact-framework windows-ce .net-1.1 format-string