我不断检查字符串字段以检查它们是否为空或空白.
if(myString == null || myString.Trim().Length == 0) { throw new ArgumentException("Blank strings cannot be handled."); }
为了节省自己的一些输入,可以为String类创建一个具有相同效果的扩展方法吗?我理解如何为类实例添加扩展方法,但是如何向类添加静态扩展方法呢?
if(String.IsNullOrBlank(myString)) { throw new ArgumentException("Blank strings cannot be handled."); }
Sean.. 36
你可以这样做:
public static bool IsNullOrBlank(this String text) { return text==null || text.Trim().Length==0; }
然后像这样调用它:
if(myString.IsNullOrBlank()) { throw new ArgumentException("Blank strings cannot be handled."); }
这是有效的,因为C#允许您在null
实例上调用扩展方法.
你可以这样做:
public static bool IsNullOrBlank(this String text) { return text==null || text.Trim().Length==0; }
然后像这样调用它:
if(myString.IsNullOrBlank()) { throw new ArgumentException("Blank strings cannot be handled."); }
这是有效的,因为C#允许您在null
实例上调用扩展方法.
我知道这是一个古老的问题,但由于它已被提出并且尚未提及,因此从.NET 4.0开始,您只需使用String.IsNullOrWhiteSpace方法即可获得相同的结果.
您可以安全地在实例上使用扩展方法:
public static class StringExtensions { public static bool IsNullOrBlank(this string s) { return s == null || s.Trim().Length == 0; } }
测试用例:
string s = null; Assert.IsTrue(s.IsNullOrBlank()); s = " "; Assert.IsTrue(s.IsNullOrBlank());
虽然它看起来有点奇怪,但我想知道为什么你的字符串需要经常检查这个案例.如果你在源头修复它们,你将不必在以后对它们如此偏执!