找回密码
 立即注册
首页 业界区 安全 C#扩展方法或.net扩展方法

C#扩展方法或.net扩展方法

邹语彤 昨天 17:10
最近在用xxxSugar时候的时候发现原生xxxSugar没有一次能执行多条sql的方法,就想着扩展一个。不废话,园友带你上高速
1.gif

 
扩展方法的定义:
在C#中,扩展方法是一种静态方法,它被用来向现有的类型添加新方法,而不需要修改原始类型定义或继承原有类型。扩展方法通常用于封装额外的功能,或者在第三方库的类型上添加功能。
要定义一个扩展方法,你需要遵循以下步骤:
1. 使用 static 关键字

扩展方法必须是静态的。
2. 使用 this 关键字

在第一个参数前使用 this 关键字,并且这个参数的类型必须是在同一个类定义之外的。这表明你想要为这个类型扩展方法。
3. 定义方法

在方法的参数列表中,除了 this 关键字指定的参数外,还可以有其他的参数。
示例代码

假设你有一个 String 类型的扩展方法,用来检查字符串是否为空或者只包含空白字符。
using System;
public static class StringExtensions
{
      public static bool IsNullOrWhiteSpace(this string str)
      {
            if (str == null) return true;
            foreach (char c in str)
            {
                  if (!char.IsWhiteSpace(c)) return false;
            }
            return true;
      }
}
 
使用扩展方法

一旦你定义了扩展方法,你就可以像使用其他任何实例方法一样使用它:
string testString = " "; // 仅包含空格的字符串
bool result = testString.IsNullOrWhiteSpace(); // 使用扩展方法
Console.WriteLine(result); // 输出:True
 
好比较官方的说完了,估计有的看懂了,有的没有。莫慌,来上点干货(博主悄悄说
2.webp
下面有些点子是博主朋友提的,博主觉得还不错就采纳了朋友的建议,谢谢博主朋友提的建议)
定义:
3.png
 
 
使用:
4.png

 
 
好,放源码
 
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SqlSugar;

///
/// SqlSugar.IAdo扩展方法
///
public static class IAdoExtensions
{
      ///
      /// 执行sql批处理
      ///
      /// sqlSugarClient的ado对象
      /// 要执行的sql的IEnumerable集合
      ///
      public static int ExecuteSqlBatch(this IAdo ado, IEnumerable sqlList)
      {
            ado.BeginTran();
            try
            {
                  foreach (string sql in sqlList)
                  {
                        // 执行每条SQL语句
                        int result = ado.ExecuteCommand(sql);
                        if (result == -1)
                        {
                              return 0;
        }
                  }
                  // 提交事务  
                  ado.CommitTran();//.CommitTransaction();
                  return 1;
    }
            catch (Exception ex)
    {
                  // 发生异常,回滚事务  
                  ado.RollbackTran();
                  return 0;
            }
      }
}
 
///
      /// 要执行的sqlList
      ///
      List SqlList = new List();
      int result = sqlSugarClient.Ado.ExecuteSqlBatch(SqlList);
 
完事了,
5.webp

 
 
 
如需转载或引用请标明出处!本号发布的包括但不限于学术论文、科研成果、研究资料等,仅供内部学习、学术交流所使用,不得用于任何商业用途或牟利,特此声明!


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册