【C#】通过扩展对象的方式,对字符串等数据类型进行数据进一步处理

简介: 在本篇文章中,我们讲一起了解下对象扩展的使用在实际项目开发中,对象扩展使用的场景还是挺多的,比如:需要对时间值进行再处理,或者字符串中的斜杠(/)转为反斜杠(\)
作者:小5聊基础
简介:一只喜欢全栈方向的程序员,欢迎咨询,尽绵薄之力答疑解惑
编程原则:Write Less Do More
  • 主要知识点列表
编号 语言或插件 知识点 说明
1 C# this 通过this+数据类型+变量名
2 C# ToUpper() 将字符串转为大写
3 C# Substring(下标, 长度) 截取字符串

【扩展对象】

1)必须是在非泛型静态类下定义扩展方法

image.png

2)正确的扩展写法,在class关键词前添加static关键词

3)静态类,成员必须是静态,所以方法也必须设置成静态
image.png

  • 扩展的基础代码格式
public static class TestExtend
{
    public static string FirstBig(this string from_text, string string_text)
    {
        string new_text = string.Empty;

        return new_text;
    }
}

【内置函数实现首字母大写】

通过扩展方法,实现首字母大写的功能,实现的方式有很多

1)首先肯定需要判断字符串是否有值,null和""空值均不做处理

2)如果只存在一个长度字符串,那么直接转为大写返回,

3)如果大于等于两个长度字符串,那么通过截取方法,获取第一字符串以及之后的所有字符串

  • 代码
public static class TestExtend
{
    public static string FirstBig(this string from_text, string string_text)
    {
        string new_text = string.Empty;

        if (string.IsNullOrEmpty(from_text))
        {
            return new_text;
        }
        else if (from_text.Length == 1)
        {
            new_text = from_text.ToUpper();
            return new_text;
        }

        string first_text = from_text.Substring(0, 1);
        string other_text = from_text.Substring(1, from_text.Length - 2);

        new_text = first_text.ToUpper() + other_text;

        return new_text;
    }
}

image.png

4)方法进一步修改完善,通过遍历的方式,把所有单词的首个字母转为大写

  • 代码
public static string FirstBig(this string from_text)
{
    string new_text = string.Empty;

    if (string.IsNullOrEmpty(from_text))
    {
        return new_text;
    }
    else if (from_text.Length == 1)
    {
        new_text = from_text.ToUpper();
        return new_text;
    }

    bool first_flag = false;
    foreach (char item in from_text)
    {
        bool flag = Regex.Matches(item.ToString(), "[a-zA-Z]").Count > 0;
        if (flag && !first_flag)
        {
            first_flag = true;
            new_text += item.ToString().ToUpper();
        }
        else if (flag)
        {
            new_text += item.ToString();
        }
        else
        {
            first_flag = false;
            new_text += item.ToString();
        }
    }

    return new_text;
}
}
  • 效果

image.png

【将字符串中的反斜杠转为斜杠】

1)在windows操作系统下,文件和文件夹的路径是反斜杠方式

image.png

2)如果保存在数据库中,那么在web项目中使用,前端虽然也能识别,但是看着别扭。在一些特殊情况有时会报错,所以需要统一转为斜杠方式

  • 代码
public static class TestExtend
{
    public static string NewPath(this string from_text)
    {
        return from_text.Replace("\\","/");
    }
}

image.png

相关文章
|
1月前
|
开发框架 .NET C#
C#|.net core 基础 - 删除字符串最后一个字符的七大类N种实现方式
【10月更文挑战第9天】在 C#/.NET Core 中,有多种方法可以删除字符串的最后一个字符,包括使用 `Substring` 方法、`Remove` 方法、`ToCharArray` 与 `Array.Copy`、`StringBuilder`、正则表达式、循环遍历字符数组以及使用 LINQ 的 `SkipLast` 方法。
|
2月前
|
存储 C# 索引
C# 一分钟浅谈:变量与数据类型简介
【9月更文挑战第1天】在 C# 编程中,了解变量与数据类型至关重要。本文详细介绍了 C# 中的值类型(如整数、浮点数、布尔值等)和引用类型(如类、接口、数组、字符串)。通过示例代码展示了变量的声明与使用方法,并针对数据类型转换错误、变量未初始化及数值溢出等常见问题提供了解决方案。正确选择数据类型不仅能提升程序性能,还可避免潜在错误,有助于编写高质量代码。
129 47
|
2月前
|
开发框架 .NET 程序员
C# 去掉字符串最后一个字符的 4 种方法
在实际业务中,我们经常会遇到在循环中拼接字符串的场景,循环结束之后拼接得到的字符串的最后一个字符往往需要去掉,看看 C# 提供了哪4种方法可以高效去掉字符串的最后一个字符
246 0
|
1月前
|
编译器 C#
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
114 65
|
12天前
|
C# Python
使用wxpython开发跨平台桌面应用,对wxpython控件实现类似C#扩展函数处理的探究
【10月更文挑战第30天】使用 `wxPython` 开发跨平台桌面应用时,可以通过创建辅助类来模拟 C# 扩展函数的功能。具体步骤包括:1. 创建辅助类 `WxWidgetHelpers`;2. 在该类中定义静态方法,如 `set_button_color`;3. 在应用中调用这些方法。这种方法提高了代码的可读性和可维护性,无需修改 `wxPython` 库即可为控件添加自定义功能。但需要注意显式调用方法和避免命名冲突。
|
1月前
|
SQL 缓存 分布式计算
C#如何处理上亿级数据的查询效率
C#如何处理上亿级数据的查询效率
15 1
|
1月前
|
中间件 数据库连接 API
C#数据分表核心代码
C#数据分表核心代码
33 0
|
2月前
|
存储 C# 开发者
枚举与结构体的应用:C#中的数据组织艺术
在C#编程中,枚举(`enum`)和结构体(`struct`)是非常重要的数据类型。枚举用于定义命名常量集合,提高代码可读性;结构体则封装相关数据字段,适合小型数据集。本文从基本概念入手,探讨它们的使用技巧、常见问题及解决方案,帮助开发者更好地利用这些特性构建健壮的应用程序。
41 8
|
1月前
|
XML JSON 前端开发
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
319 0
|
2月前
|
C# 数据安全/隐私保护
C# 一分钟浅谈:类与对象的概念理解
【9月更文挑战第2天】本文从零开始详细介绍了C#中的类与对象概念。类作为一种自定义数据类型,定义了对象的属性和方法;对象则是类的实例,拥有独立的状态。通过具体代码示例,如定义 `Person` 类及其实例化过程,帮助读者更好地理解和应用这两个核心概念。此外,还总结了常见的问题及解决方法,为编写高质量的面向对象程序奠定基础。
25 2