繁体   English   中英

C#实用程序类,用于使首字母大写并修剪输入字符串

[英]C# utility class for to make the first letter upper case and trim an input string

我的目标是“消毒字符串”。

该类应该这样做:

  • 修剪输入
  • 使首字母大写。

你能告诉我:

  • 有没有办法更好地编码呢?
  • 将PARAMETER用于类似这样的方法是否有意义:CapitalizeFirstLetterTrim(string x)

    • 当我初始化一个对象时,我需要编写很多类似下面的代码,还有其他方法可以缩短它吗?

       UserInputSanitizer myInput = new UserInputSanitizer(); myInput.Input = " ciao world"; string ouput = myInput.CapitalizeFirstLetterTrim(); 

有用的资源http://msdn.microsoft.com/en-us/library/bb311042.aspx

-----------班级

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebProject.Core.Utilities
{
    public class UserInputSanitizer
    {
        // Backing variables
        private string _input;
        // Properties
        public string Input
        {
            set { _input = value; }
        }
        private string _output;

        // Backing variables
        // Properties
        public string Output
        {
            get { return _output; }
        }

        public string CapitalizeFirstLetterTrim()
        {
            // Trim
            _input.Trim();
            // Make First letter UpperCase and the rest levae lower case
            _output = _input.Substring(0, 1).ToUpper() + _input.Substring(1);
            return Output;
        }
    }
}

我想我会在字符串上创建扩展方法

public static class MyStringExtensions{
    public static string Sanitize(this string input)
    {
        if(input == null) throw new ArgumentNullException("input");

        var trimmed = input.Trim();
        return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(trimmed);
    }
}

您将这样调用方法:

var s = "  Unsanitized         ";
var sanitized = s.Sanitize();

您可以使用扩展方法来满足您的要求

使用扩展方法,您可以像使用System.String类一样使用method。

看这里

我将对字符串类使用扩展方法:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WebProject.Core.Utilities
{
    public static class StringExtensions
    {
        public static string Sanitize(this string s)
        {
            //your code to sanitize your string, for example
            if(s == null) throw new ArgumentNullException("s");
            var trimmed = input.Trim();
            return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(trimmed);
        }
    }
}

然后,您可以使用:

string s = "    UnsanitizedString";
s = s.Sanitize();

我将类和方法设为静态

namespace WebProject.Core.Utilities
    {
        public static class UserInputSanitizer
        {

            public static string CapitalizeFirstLetterTrim(string input)
            {
                // Trim
                input.Trim();
                // Make First letter UpperCase and the rest levae lower case
                return input.Substring(0, 1).ToUpper() + input.Substring(1);

            }

        }
    }

然后您可以这样称呼它:

string ouput = UserInputSanitizer.CapitalizeFirstLetterTrim("            ciao world");

将其作为string的扩展方法来编写,可能比使用实用程序类更直观,因此您可以直接从文字中调用它。 开销少得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM