邹语彤 发表于 2025-10-14 17:10:06

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

最近在用xxxSugar时候的时候发现原生xxxSugar没有一次能执行多条sql的方法,就想着扩展一个。不废话,园友带你上高速
 
扩展方法的定义:
在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
 
好比较官方的说完了,估计有的看懂了,有的没有。莫慌,来上点干货(博主悄悄说下面有些点子是博主朋友提的,博主觉得还不错就采纳了朋友的建议,谢谢博主朋友提的建议)
定义: 
 
使用:
 
 
好,放源码
 
 
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);
 
完事了,
 
 
 
如需转载或引用请标明出处!本号发布的包括但不限于学术论文、科研成果、研究资料等,仅供内部学习、学术交流所使用,不得用于任何商业用途或牟利,特此声明!


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

鞭氅 发表于 2025-10-26 00:45:56

东西不错很实用谢谢分享

县挫伪 发表于 2025-11-15 04:07:53

感谢分享,下载保存了,貌似很强大

王妍芳 发表于 2025-12-22 05:20:33

懂技术并乐意极积无私分享的人越来越少。珍惜

吉芷雁 发表于 2025-12-25 23:34:27

喜欢鼓捣这些软件,现在用得少,谢谢分享!

筒霓暄 发表于 2025-12-28 21:02:03

感谢分享,下载保存了,貌似很强大

士沌 发表于 2026-1-1 21:19:54

收藏一下   不知道什么时候能用到

庾签 发表于 2026-1-15 00:55:39

分享、互助 让互联网精神温暖你我

玻倌瞽 发表于 2026-1-18 13:33:28

谢谢分享,试用一下

茅香馨 发表于 2026-1-19 10:49:42

感谢分享,学习下。

乱蚣 发表于 2026-1-20 10:28:30

感谢分享,学习下。

袋岖荤 发表于 2026-1-20 17:10:03

感谢分享,学习下。

驶桐柢 发表于 2026-1-22 02:01:12

谢谢分享,试用一下

宁觅波 发表于 2026-1-26 09:34:57

分享、互助 让互联网精神温暖你我

俞秋荣 发表于 2026-1-28 14:17:56

谢谢楼主提供!

怒鼓踊 发表于 2026-1-29 05:18:43

感谢发布原创作品,程序园因你更精彩

东门芳洲 发表于 2026-1-29 16:22:58

过来提前占个楼

当贵 发表于 2026-2-1 02:13:20

分享、互助 让互联网精神温暖你我

万俟谷雪 发表于 2026-2-1 06:22:43

感谢分享,学习下。

孟清妍 发表于 2026-2-2 03:38:44

yyds。多谢分享
页: [1] 2 3
查看完整版本: C#扩展方法或.net扩展方法