修剪C#应用程序中的所有字符串或减少Trim()调用数的最简单方法?

修剪C#应用程序中的所有字符串或减少Trim()调用数的最简单方法?,c#,string,C#,String,如果那个问题没有答案,我很抱歉。。默认情况下,让C#应用程序中的所有字符串都被修剪的最简单且不冗长的方法是什么? 创建新类型、扩展方法或属性?是否有任何技巧或设置可以减少Trim()调用的数量 UPD。嗯,我没有特别的例子——只是用户从UI或Excel或其他东西输入了大量的内容,您应该始终记住Trim(),Trim(),Trim()。我真的很想知道为什么在C#中字符串没有被默认修剪。从这个问题很难判断;但我可能会创建一个自定义textbox,用Text.Trim()覆盖Text方法 或者,您可以

如果那个问题没有答案,我很抱歉。。默认情况下,让C#应用程序中的所有字符串都被修剪的最简单且不冗长的方法是什么? 创建新类型、扩展方法或属性?是否有任何技巧或设置可以减少Trim()调用的数量


UPD。嗯,我没有特别的例子——只是用户从UI或Excel或其他东西输入了大量的内容,您应该始终记住Trim(),Trim(),Trim()。我真的很想知道为什么在C#中字符串没有被默认修剪。

从这个问题很难判断;但我可能会创建一个自定义textbox,用Text.Trim()覆盖Text方法

或者,您可以在一个公共类中创建一个方法,该方法将修剪传递给它的任何内容。所以在使用任何字符串之前;你应该先让他们通过这个方法


如果你能详细说明一下你的原始问题,那会很有帮助的,如果你是指为资源文件或其他东西获取的字符串,那么只需创建一个获取字符串的实用函数,并在其中调用
Trim()
,因此,在调用代码时,您无需担心它。

如果发现自己在同一范围内大量使用该值,那么为了减少调用次数,最好的选择是将该值修剪一次,并将其存储为变量,即

var trimmedStr = myStr.Trim();

扩展方法将毫无意义,因为它几乎等同于调用Trim(),正如我想象的那样,您只需在内部执行此操作。创建自定义类型只是为了确保字符串没有空格,这有点过于工程化,没有必要。

有很多缺点,但您可以执行以下操作:

    class StringT
    {
        private String _s;
        public StringT(String v)
        {
            if (!String.IsNullOrEmpty(v)) { _s = v.Trim(); }
              else { _s = v; }
        }

         public static implicit operator StringT(String v) { return new StringT(v); }

         public static implicit operator String(StringT v) { return v._s; }
    }

为什么需要减少对Trim()方法的调用次数?为什么有这么多未修剪的字符串让您担心?这些“不应修剪的字符串”是从哪里来的?用户输入,数据库,两者都有?为什么你认为值来自文本框控件?OP甚至没有提到UI。@Jim:“在一个公共类中创建一个方法,该方法将修剪传递给它的任何内容”。您是指公共类
System.String
?;)中的
Trim
方法吗詹姆斯:这只是猜测;这次行动真的没什么可干的。我想如果你在修剪刺,它们可能来自用户输入。卢克:没错;而不是到处都是String.Trim();创建一个调用String.Trim()的方法,然后通过that@Jim:但是像
MyClass.MyMethod(myString)
myString.MyExtensionMethod()
这样的东西与使用普通的
myString.Trim()
相比没有任何好处,是吗?该方法的唯一优点是避免在代码中到处使用.Trim()。它在可伸缩性方面也可能是有益的;假设所有回车都需要解析出来,对该方法进行一次更改将消除查找代码中分散的.Trim()的所有用法