您能否告诉我TrimNull()是否多余以及是否应该使用替代方法?通过考虑NULL来修改文本框的值
例如:
string username = UsernameTextBox.Text.TrimNull();
有人告诉我没有定义或扩展方法。也许有一个我缺少的参考?
UPDATE:
什么是最readable
方式返回empty string
如果值为NULL?
您能否告诉我TrimNull()是否多余以及是否应该使用替代方法?通过考虑NULL来修改文本框的值
例如:
string username = UsernameTextBox.Text.TrimNull();
有人告诉我没有定义或扩展方法。也许有一个我缺少的参考?
UPDATE:
什么是最readable
方式返回empty string
如果值为NULL?
你可以创建自己的扩展,方法为,如果你喜欢:
public static class StringExtensions
{
public static string TrimNull(this string value)
{
return string.IsNullOrWhiteSpace(value) ? value : value.Trim();
}
}
添加到您的项目,你的代码将工作。
这只是一种选择。
您对我在答案中提到的方法有什么看法? – Lijo 2013-02-21 12:58:37
@Lijo当然,这将工作=)除非永远不会返回null,如果这是OP想要的,但是谁知道=)如果你总是想要一个非空的字符串,那么你的答案是有效的。 – 2013-02-21 13:19:58
我通常使用String.IsNullOrWhiteSpace(),像这样:
string username = (String.IsNullOrWhiteSpace(UsernameTextBox.Text) ?
null : UsernameTextBox.Text.Trim());
这样一来,如果.Text
属性为null,它不会导致异常。
作为NULL的字符串不是它的值。它的一个状态。这意味着它没有被分配一个内存(因为它是一个引用类型)。假如它会自动得到一个数值型数据类型它woudld被分配一个默认值像INT其0等
ü应使用
if(!String.IsNullOrEmpty(UsernameTextBox.Text))
string username = UsernameTextBox.Text.Trim();
有作为TrimNull(String)
没有这样的功能 - 它不会做任何事情。一个字符串可以是null或非null,它不能包含两者的混合。如果字符串为空,则静态函数TrimNull(myString)
将无法从字符串中“删除”任何内容。如果它不为空,则不会删除NULL
。更糟糕的是,如果TrimNull是一个实例方法myString.TrimNull()
只会导致一个异常,如果myString是NULL
- 因为你不能在空引用上调用任何方法。
如果你的目标是修剪周围串空白字符,只需使用myString.Trim()
。
如果你的目标是检测字符串是否为空,则使用myString == NULL
如果你的目标是检测字符串是否为空或null使用String.IsNullOrEmpty(myString)
如果你的目标是要修剪从数据流尾随零字符(\0
),尝试以下方法:
myString.TrimEnd(new char[] { '\0' })
但正如FrédéricHamidi所说,如果您指的是后者,用户将很难在TextBox中获取空字符,因此您在处理其输入时不应该担心这种情况。
比这更糟糕。如果字符串为空,则会发生异常,因为不会有String对象调用TrimNull()方法。 – 2012-04-11 13:38:03
@CharlieKilian正是。我会修改我的答案以反映这一点。 – Alain 2012-04-11 13:38:39
它可能是字符串的扩展。 – 2012-04-11 13:41:19
使用null-coalescing operator在@sixlettervariables提到Negate the null-coalescing operator
string username = (UsernameTextBox.Text ?? String.Empty).Trim();
回答这是什么功能?没有为字符串定义这样的函数。 – gbianchi 2012-04-11 13:36:34
什么是TrimNull()..它不是C# – Marshal 2012-04-11 13:36:42
该奇怪的方法应该做什么?在框架中没有'TrimNull'。也许有人已经添加了扩展名,并且你错过了对该dll的引用。但我们怎么知道? – 2012-04-11 13:37:27