【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

相关文章
|
27天前
|
存储 C# 索引
C# 一分钟浅谈:变量与数据类型简介
【9月更文挑战第1天】在 C# 编程中,了解变量与数据类型至关重要。本文详细介绍了 C# 中的值类型(如整数、浮点数、布尔值等)和引用类型(如类、接口、数组、字符串)。通过示例代码展示了变量的声明与使用方法,并针对数据类型转换错误、变量未初始化及数值溢出等常见问题提供了解决方案。正确选择数据类型不仅能提升程序性能,还可避免潜在错误,有助于编写高质量代码。
117 47
|
1月前
|
测试技术 API C#
C#使用Bogus生成测试数据
C#使用Bogus生成测试数据
38 1
|
16天前
|
存储 C# 开发者
枚举与结构体的应用:C#中的数据组织艺术
在C#编程中,枚举(`enum`)和结构体(`struct`)是非常重要的数据类型。枚举用于定义命名常量集合,提高代码可读性;结构体则封装相关数据字段,适合小型数据集。本文从基本概念入手,探讨它们的使用技巧、常见问题及解决方案,帮助开发者更好地利用这些特性构建健壮的应用程序。
22 8
|
1天前
|
开发框架 .NET 程序员
C# 去掉字符串最后一个字符的 4 种方法
在实际业务中,我们经常会遇到在循环中拼接字符串的场景,循环结束之后拼接得到的字符串的最后一个字符往往需要去掉,看看 C# 提供了哪4种方法可以高效去掉字符串的最后一个字符
|
26天前
|
C# 数据安全/隐私保护
C# 一分钟浅谈:类与对象的概念理解
【9月更文挑战第2天】本文从零开始详细介绍了C#中的类与对象概念。类作为一种自定义数据类型,定义了对象的属性和方法;对象则是类的实例,拥有独立的状态。通过具体代码示例,如定义 `Person` 类及其实例化过程,帮助读者更好地理解和应用这两个核心概念。此外,还总结了常见的问题及解决方法,为编写高质量的面向对象程序奠定基础。
16 2
|
1月前
|
存储 C# 数据库
解决C#对Firebase数据序列化失败的难题
在游戏开发中,Unity结合Firebase实时数据库为开发者提供强大支持,但在C#中进行数据序列化和反序列化时常遇难题。文章剖析了数据丢失或反序列化失败的原因,并给出解决方案,包括使用`JsonUtility`、确保字段标记为`[Serializable]`以及正确配置网络请求。示例代码演示了如何在Unity环境中实现Firebase数据的序列化和反序列化,并通过设置代理IP、Cookies和User-Agent来增强网络请求的安全性。这些技巧有助于确保数据完整传输,提升开发效率。
解决C#对Firebase数据序列化失败的难题
|
10天前
|
前端开发 C#
C# 一分钟浅谈:字符串操作与正则表达式
本文详细介绍C#中的字符串操作与正则表达式应用,涵盖字符串拼接、分割、查找及替换等基础操作,并通过实例讲解正则表达式的模式匹配、文本替换与分组捕获技巧。同时,文章还探讨了性能优化、复杂度管理和安全性等问题及解决策略,助你提升编程效率,应对实际开发挑战。
45 0
|
1月前
|
数据库
C#Winform使用NPOI获取word中的数据
C#Winform使用NPOI获取word中的数据
127 2
|
1月前
|
Java C#
C# 和 java 基本数据类型
C# 和 java 基本数据类型
13 0
|
1月前
|
开发框架 .NET C#
WPF/C#:显示分组数据的两种方式
WPF/C#:显示分组数据的两种方式
41 0