【C#公共帮助类】 ToolsHelper帮助类

这个帮助类,目前我们只用到了两个,我就先更新这两个,后面有用到的,我会继续更新这个Helper帮助类

在Tools.cs中 有很多方法 跟Utils里是重复的,而且Utils里的方法更加新一点,大家可以删除Tools.cs里重复的,我只是删除了部分重复的。

RegexHelper

 1 using System.Text.RegularExpressions;
 2
 3 namespace Common
 4 {
 5     /// <summary>
 6     /// 操作正则表达式的公共类
 7     /// </summary>
 8     public class RegexHelper
 9     {
10         #region 验证输入字符串是否与模式字符串匹配
11         /// <summary>
12         /// 验证输入字符串是否与模式字符串匹配,匹配返回true
13         /// </summary>
14         /// <param name="input">输入字符串</param>
15         /// <param name="pattern">模式字符串</param>
16         public static bool IsMatch(string input, string pattern)
17         {
18             return IsMatch(input, pattern, RegexOptions.IgnoreCase);
19         }
20
21         /// <summary>
22         /// 验证输入字符串是否与模式字符串匹配,匹配返回true
23         /// </summary>
24         /// <param name="input">输入的字符串</param>
25         /// <param name="pattern">模式字符串</param>
26         /// <param name="options">筛选条件</param>
27         public static bool IsMatch(string input, string pattern, RegexOptions options)
28         {
29             return Regex.IsMatch(input, pattern, options);
30         }
31         #endregion
32     }
33 }

Tools

  1 using System;
  2 using System.Text;
  3 using System.Text.RegularExpressions;
  4 using System.Collections.Generic;
  5 using System.Reflection;
  6 using System.Web;
  7 using System.Web.Mvc;
  8 using System.ComponentModel;
  9
 10 namespace Common
 11 {
 12     /// <summary>
 13     /// 功能描述:共用工具类
 14     /// </summary>
 15     public static class Tools
 16     {
 17
 18         #region 得到字符串长度,一个汉字长度为2
 19         /// <summary>
 20         /// 得到字符串长度,一个汉字长度为2
 21         /// </summary>
 22         /// <param name="inputString">参数字符串</param>
 23         /// <returns></returns>
 24         public static int StrLength(string inputString)
 25         {
 26             System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
 27             int tempLen = 0;
 28             byte[] s = ascii.GetBytes(inputString);
 29             for (int i = 0; i < s.Length; i++)
 30             {
 31                 if ((int)s[i] == 63)
 32                     tempLen += 2;
 33                 else
 34                     tempLen += 1;
 35             }
 36             return tempLen;
 37         }
 38         #endregion
 39
 40         #region 截取指定长度字符串
 41         /// <summary>
 42         /// 截取指定长度字符串
 43         /// </summary>
 44         /// <param name="inputString">要处理的字符串</param>
 45         /// <param name="len">指定长度</param>
 46         /// <returns>返回处理后的字符串</returns>
 47         public static string ClipString(string inputString, int len)
 48         {
 49             bool isShowFix = false;
 50             if (len % 2 == 1)
 51             {
 52                 isShowFix = true;
 53                 len--;
 54             }
 55             System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
 56             int tempLen = 0;
 57             string tempString = "";
 58             byte[] s = ascii.GetBytes(inputString);
 59             for (int i = 0; i < s.Length; i++)
 60             {
 61                 if ((int)s[i] == 63)
 62                     tempLen += 2;
 63                 else
 64                     tempLen += 1;
 65
 66                 try
 67                 {
 68                     tempString += inputString.Substring(i, 1);
 69                 }
 70                 catch
 71                 {
 72                     break;
 73                 }
 74
 75                 if (tempLen > len)
 76                     break;
 77             }
 78
 79             byte[] mybyte = System.Text.Encoding.Default.GetBytes(inputString);
 80             if (isShowFix && mybyte.Length > len)
 81                 tempString += "…";
 82             return tempString;
 83         }
 84         #endregion
 85
 86         #region 获得两个日期的间隔
 87         /// <summary>
 88         /// 获得两个日期的间隔
 89         /// </summary>
 90         /// <param name="DateTime1">日期一。</param>
 91         /// <param name="DateTime2">日期二。</param>
 92         /// <returns>日期间隔TimeSpan。</returns>
 93         public static TimeSpan DateDiff(DateTime DateTime1, DateTime DateTime2)
 94         {
 95             TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
 96             TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
 97             TimeSpan ts = ts1.Subtract(ts2).Duration();
 98             return ts;
 99         }
100         #endregion
101
102         #region 格式化日期时间
103         /// <summary>
104         /// 格式化日期时间
105         /// </summary>
106         /// <param name="dateTime1">日期时间</param>
107         /// <param name="dateMode">显示模式</param>
108         /// <returns>0-9种模式的日期</returns>
109         public static string FormatDate(DateTime dateTime1, string dateMode)
110         {
111             switch (dateMode)
112             {
113                 case "0":
114                     return dateTime1.ToString("yyyy-MM-dd");
115                 case "1":
116                     return dateTime1.ToString("yyyy-MM-dd HH:mm:ss");
117                 case "2":
118                     return dateTime1.ToString("yyyy/MM/dd");
119                 case "3":
120                     return dateTime1.ToString("yyyy年MM月dd日");
121                 case "4":
122                     return dateTime1.ToString("MM-dd");
123                 case "5":
124                     return dateTime1.ToString("MM/dd");
125                 case "6":
126                     return dateTime1.ToString("MM月dd日");
127                 case "7":
128                     return dateTime1.ToString("yyyy-MM");
129                 case "8":
130                     return dateTime1.ToString("yyyy/MM");
131                 case "9":
132                     return dateTime1.ToString("yyyy年MM月");
133                 default:
134                     return dateTime1.ToString();
135             }
136         }
137         #endregion
138
139         #region 得到随机日期
140         /// <summary>
141         /// 得到随机日期
142         /// </summary>
143         /// <param name="time1">起始日期</param>
144         /// <param name="time2">结束日期</param>
145         /// <returns>间隔日期之间的 随机日期</returns>
146         public static DateTime GetRandomTime(DateTime time1, DateTime time2)
147         {
148             Random random = new Random();
149             DateTime minTime = new DateTime();
150             DateTime maxTime = new DateTime();
151
152             System.TimeSpan ts = new System.TimeSpan(time1.Ticks - time2.Ticks);
153
154             // 获取两个时间相隔的秒数
155             double dTotalSecontds = ts.TotalSeconds;
156             int iTotalSecontds = 0;
157
158             if (dTotalSecontds > System.Int32.MaxValue)
159             {
160                 iTotalSecontds = System.Int32.MaxValue;
161             }
162             else if (dTotalSecontds < System.Int32.MinValue)
163             {
164                 iTotalSecontds = System.Int32.MinValue;
165             }
166             else
167             {
168                 iTotalSecontds = (int)dTotalSecontds;
169             }
170
171
172             if (iTotalSecontds > 0)
173             {
174                 minTime = time2;
175                 maxTime = time1;
176             }
177             else if (iTotalSecontds < 0)
178             {
179                 minTime = time1;
180                 maxTime = time2;
181             }
182             else
183             {
184                 return time1;
185             }
186
187             int maxValue = iTotalSecontds;
188
189             if (iTotalSecontds <= System.Int32.MinValue)
190                 maxValue = System.Int32.MinValue + 1;
191
192             int i = random.Next(System.Math.Abs(maxValue));
193
194             return minTime.AddSeconds(i);
195         }
196         /// <summary>
197         /// 获取时间戳
198         /// </summary>
199         public static string GetRandomTimeSpan()
200         {
201             TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0);
202             return Convert.ToInt64(ts.TotalSeconds).ToString();
203         }
204         #endregion
205
206         #region HTML转行成TEXT
207         /// <summary>
208         /// HTML转行成TEXT
209         /// </summary>
210         /// <param name="strHtml"></param>
211         /// <returns></returns>
212         public static string HtmlToTxt(string strHtml)
213         {
214             string[] aryReg ={
215             @"<script[^>]*?>.*?</script>",
216             @"<(\/\s*)?!?((\w+:)?\w+)(\w+(\s*=?\s*(([""‘])(\\[""‘tbnr]|[^\7])*?\7|\w+)|.{0})|\s)*?(\/\s*)?>",
217             @"([\r\n])[\s]+",
218             @"&(quot|#34);",
219             @"&(amp|#38);",
220             @"&(lt|#60);",
221             @"&(gt|#62);",
222             @"&(nbsp|#160);",
223             @"&(iexcl|#161);",
224             @"&(cent|#162);",
225             @"&(pound|#163);",
226             @"&(copy|#169);",
227             @"&#(\d+);",
228             @"-->",
229             @"<!--.*\n"
230             };
231
232             string newReg = aryReg[0];
233             string strOutput = strHtml;
234             for (int i = 0; i < aryReg.Length; i++)
235             {
236                 Regex regex = new Regex(aryReg[i], RegexOptions.IgnoreCase);
237                 strOutput = regex.Replace(strOutput, string.Empty);
238             }
239
240             strOutput.Replace("<", "");
241             strOutput.Replace(">", "");
242             strOutput.Replace("\r\n", "");
243
244
245             return strOutput;
246         }
247         #endregion
248
249         #region 判断对象是否为空
250         /// <summary>
251         /// 判断对象是否为空,为空返回true
252         /// </summary>
253         /// <typeparam name="T">要验证的对象的类型</typeparam>
254         /// <param name="data">要验证的对象</param>
255         public static bool IsNullOrEmpty<T>(this T data)
256         {
257             //如果为null
258             if (data == null)
259             {
260                 return true;
261             }
262
263             //如果为""
264             if (data.GetType() == typeof(String))
265             {
266                 if (string.IsNullOrEmpty(data.ToString().Trim()) || data.ToString() == "")
267                 {
268                     return true;
269                 }
270             }
271
272             //如果为DBNull
273             if (data.GetType() == typeof(DBNull))
274             {
275                 return true;
276             }
277
278             //不为空
279             return false;
280         }
281
282         /// <summary>
283         /// 判断对象是否为空,为空返回true
284         /// </summary>
285         /// <param name="data">要验证的对象</param>
286         public static bool IsNullOrEmpty(this object data)
287         {
288             //如果为null
289             if (data == null)
290             {
291                 return true;
292             }
293
294             //如果为""
295             if (data.GetType() == typeof(String))
296             {
297                 if (string.IsNullOrEmpty(data.ToString().Trim()))
298                 {
299                     return true;
300                 }
301             }
302
303             //如果为DBNull
304             if (data.GetType() == typeof(DBNull))
305             {
306                 return true;
307             }
308
309             //不为空
310             return false;
311         }
312         #endregion
313
314         #region 验证是否为浮点数
315         /// <summary>
316         /// 验证是否浮点数
317         /// </summary>
318         /// <param name="floatNum"></param>
319         /// <returns></returns>
320         public static bool IsFloat(this string floatNum)
321         {
322             //如果为空,认为验证不合格
323             if (IsNullOrEmpty(floatNum))
324             {
325                 return false;
326             }
327             //清除要验证字符串中的空格
328             floatNum = floatNum.Trim();
329
330             //模式字符串
331             string pattern = @"^(-?\d+)(\.\d+)?$";
332
333             //验证
334             return RegexHelper.IsMatch(floatNum, pattern);
335         }
336         #endregion
337
338         #region 验证是否为整数
339         /// <summary>
340         /// 验证是否为整数 如果为空,认为验证不合格 返回false
341         /// </summary>
342         /// <param name="number">要验证的整数</param>
343         public static bool IsInt(this string number)
344         {
345             //如果为空,认为验证不合格
346             if (IsNullOrEmpty(number))
347             {
348                 return false;
349             }
350
351             //清除要验证字符串中的空格
352             number = number.Trim();
353
354             //模式字符串
355             string pattern = @"^[0-9]+[0-9]*$";
356
357             //验证
358             return RegexHelper.IsMatch(number, pattern);
359         }
360         #endregion
361
362         #region 验证是否为数字
363         /// <summary>
364         /// 验证是否为数字
365         /// </summary>
366         /// <param name="number">要验证的数字</param>
367         public static bool IsNumber(this string number)
368         {
369             //如果为空,认为验证不合格
370             if (IsNullOrEmpty(number))
371             {
372                 return false;
373             }
374
375             //清除要验证字符串中的空格
376             number = number.Trim();
377
378             //模式字符串
379             string pattern = @"^[0-9]+[0-9]*[.]?[0-9]*$";
380
381             //验证
382             return RegexHelper.IsMatch(number, pattern);
383         }
384         #endregion
385
386         #region 验证日期是否合法
387         /// <summary>
388         /// 是否是日期
389         /// </summary>
390         /// <param name="date"></param>
391         /// <returns></returns>
392         public static bool IsDate(this object date)
393         {
394
395             //如果为空,认为验证合格
396             if (IsNullOrEmpty(date))
397             {
398                 return false;
399             }
400             string strdate = date.ToString();
401             try
402             {
403                 //用转换测试是否为规则的日期字符
404                 date = Convert.ToDateTime(date).ToString("d");
405                 return true;
406             }
407             catch
408             {
409                 //如果日期字符串中存在非数字,则返回false
410                 if (!IsInt(strdate))
411                 {
412                     return false;
413                 }
414
415                 #region 对纯数字进行解析
416                 //对8位纯数字进行解析
417                 if (strdate.Length == 8)
418                 {
419                     //获取年月日
420                     string year = strdate.Substring(0, 4);
421                     string month = strdate.Substring(4, 2);
422                     string day = strdate.Substring(6, 2);
423
424                     //验证合法性
425                     if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
426                     {
427                         return false;
428                     }
429                     if (Convert.ToInt32(month) > 12 || Convert.ToInt32(day) > 31)
430                     {
431                         return false;
432                     }
433
434                     //拼接日期
435                     date = Convert.ToDateTime(year + "-" + month + "-" + day).ToString("d");
436                     return true;
437                 }
438
439                 //对6位纯数字进行解析
440                 if (strdate.Length == 6)
441                 {
442                     //获取年月
443                     string year = strdate.Substring(0, 4);
444                     string month = strdate.Substring(4, 2);
445
446                     //验证合法性
447                     if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
448                     {
449                         return false;
450                     }
451                     if (Convert.ToInt32(month) > 12)
452                     {
453                         return false;
454                     }
455
456                     //拼接日期
457                     date = Convert.ToDateTime(year + "-" + month).ToString("d");
458                     return true;
459                 }
460
461                 //对5位纯数字进行解析
462                 if (strdate.Length == 5)
463                 {
464                     //获取年月
465                     string year = strdate.Substring(0, 4);
466                     string month = strdate.Substring(4, 1);
467
468                     //验证合法性
469                     if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
470                     {
471                         return false;
472                     }
473
474                     //拼接日期
475                     date = year + "-" + month;
476                     return true;
477                 }
478
479                 //对4位纯数字进行解析
480                 if (strdate.Length == 4)
481                 {
482                     //获取年
483                     string year = strdate.Substring(0, 4);
484
485                     //验证合法性
486                     if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
487                     {
488                         return false;
489                     }
490
491                     //拼接日期
492                     date = Convert.ToDateTime(year).ToString("d");
493                     return true;
494                 }
495                 #endregion
496
497                 return false;
498             }
499
500         }
501         /// <summary>
502         /// 验证日期是否合法,对不规则的作了简单处理
503         /// </summary>
504         /// <param name="date">日期</param>
505         public static bool IsDate(ref string date)
506         {
507             //如果为空,认为验证合格
508             if (IsNullOrEmpty(date))
509             {
510                 return true;
511             }
512
513             //清除要验证字符串中的空格
514             date = date.Trim();
515
516             //替换\
517             date = date.Replace(@"\", "-");
518             //替换/
519             date = date.Replace(@"/", "-");
520
521             //如果查找到汉字"今",则认为是当前日期
522             if (date.IndexOf("今") != -1)
523             {
524                 date = DateTime.Now.ToString();
525             }
526
527             try
528             {
529                 //用转换测试是否为规则的日期字符
530                 date = Convert.ToDateTime(date).ToString("d");
531                 return true;
532             }
533             catch
534             {
535                 //如果日期字符串中存在非数字,则返回false
536                 if (!IsInt(date))
537                 {
538                     return false;
539                 }
540
541                 #region 对纯数字进行解析
542                 //对8位纯数字进行解析
543                 if (date.Length == 8)
544                 {
545                     //获取年月日
546                     string year = date.Substring(0, 4);
547                     string month = date.Substring(4, 2);
548                     string day = date.Substring(6, 2);
549
550                     //验证合法性
551                     if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
552                     {
553                         return false;
554                     }
555                     if (Convert.ToInt32(month) > 12 || Convert.ToInt32(day) > 31)
556                     {
557                         return false;
558                     }
559
560                     //拼接日期
561                     date = Convert.ToDateTime(year + "-" + month + "-" + day).ToString("d");
562                     return true;
563                 }
564
565                 //对6位纯数字进行解析
566                 if (date.Length == 6)
567                 {
568                     //获取年月
569                     string year = date.Substring(0, 4);
570                     string month = date.Substring(4, 2);
571
572                     //验证合法性
573                     if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
574                     {
575                         return false;
576                     }
577                     if (Convert.ToInt32(month) > 12)
578                     {
579                         return false;
580                     }
581
582                     //拼接日期
583                     date = Convert.ToDateTime(year + "-" + month).ToString("d");
584                     return true;
585                 }
586
587                 //对5位纯数字进行解析
588                 if (date.Length == 5)
589                 {
590                     //获取年月
591                     string year = date.Substring(0, 4);
592                     string month = date.Substring(4, 1);
593
594                     //验证合法性
595                     if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
596                     {
597                         return false;
598                     }
599
600                     //拼接日期
601                     date = year + "-" + month;
602                     return true;
603                 }
604
605                 //对4位纯数字进行解析
606                 if (date.Length == 4)
607                 {
608                     //获取年
609                     string year = date.Substring(0, 4);
610
611                     //验证合法性
612                     if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
613                     {
614                         return false;
615                     }
616
617                     //拼接日期
618                     date = Convert.ToDateTime(year).ToString("d");
619                     return true;
620                 }
621                 #endregion
622
623                 return false;
624             }
625         }
626         #endregion
627
628         /// <summary>
629         ///  //前台显示邮箱的掩码替换(由[email protected]等替换成t*****@qq.com)
630         /// </summary>
631         /// <param name="Email">邮箱</param>
632         /// <returns></returns>
633         public static string GetEmail(string Email)
634         {
635
636             string strArg = "";
637             string SendEmail = "";
638             Match match = Regex.Match(Email, @"(\w)\[email protected]");
639
640             if (match.Success)
641             {
642                 strArg = match.Groups[1].Value + "*****@";
643                 SendEmail = Regex.Replace(Email, @"\[email protected]", strArg);
644             }
645             else
646                 SendEmail = Email;
647             return SendEmail;
648         }
649
650         /// <summary>
651         /// 检查字符串是否存在与一个,组合到一起的字符串数组中
652         /// </summary>
653         /// <param name="strSplit">未分割的字符串</param>
654         /// <param name="split">分割符号</param>
655         /// <param name="targetValue">目标字符串</param>
656         /// <returns></returns>
657         public static bool CheckStringHasValue(string strSplit, char split, string targetValue)
658         {
659             string[] strList = strSplit.Split(split);
660             foreach (string str in strList)
661             {
662                 if (targetValue == str)
663                     return true;
664             }
665             return false;
666         }
667
668         #region 枚举型相关操作
669
670         /// <summary>
671         /// 功能描述;获取枚举名称.传入枚举类型和枚举值
672         /// </summary>
673         /// <param name="enumType"></param>
674         /// <param name="intEnumValue"></param>
675         /// <returns></returns>
676         public static string GetEnumText<T>(int intEnumValue)
677         {
678             return Enum.GetName(typeof(T), intEnumValue);
679         }
680
681         /// <summary>
682         /// 功能描述:获取枚举项集合,传入枚举类型
683         /// </summary>
684         /// <typeparam name="T"></typeparam>
685         /// <returns></returns>
686         public static IList<object> BindEnums<T>()
687         {
688             IList<object> _list = new List<object>();
689             //遍历枚举集合
690             foreach (int i in Enum.GetValues(typeof(T)))
691             {
692                 var _selItem = new
693                 {
694                     Value = i,
695                     Text = Enum.GetName(typeof(T), i)
696                 };
697                 _list.Add(_selItem);
698             }
699             return _list;
700         }
701
702         ///<summary>
703         /// 返回 Dic 枚举项,描述
704         ///</summary>
705         ///<param name="enumType"></param>
706         ///<returns>Dic枚举项,描述</returns>
707         public static Dictionary<string, string> BindEnums(Type enumType)
708         {
709             Dictionary<string, string> dic = new Dictionary<string, string>();
710             FieldInfo[] fieldinfos = enumType.GetFields();
711             foreach (FieldInfo field in fieldinfos)
712             {
713                 if (field.FieldType.IsEnum)
714                 {
715                     Object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false);
716
717                     dic.Add(field.Name, ((DescriptionAttribute)objs[0]).Description);
718                 }
719
720             }
721
722             return dic;
723         }
724         ///<summary>
725         /// 返回 List《Enums.EnumsClass》 枚举值、名称、描述
726         ///</summary>
727         public static List<Enums.EnumsClass> BindEnumsList(Type enumType)
728         {
729             var list = new List<Enums.EnumsClass>();
730             FieldInfo[] fieldinfos = enumType.GetFields();
731             var enumvalue = Enum.GetValues(enumType);
732             foreach (FieldInfo field in fieldinfos)
733             {
734                 if (field.FieldType.IsEnum)
735                 {
736                     int ev = -1;
737                     Object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false);
738                     foreach (int item in enumvalue)
739                     {
740                         if (Enum.GetName(enumType, item) == field.Name)
741                         {
742                             ev = item;
743                             break;
744                         }
745                     }
746                     list.Add(new Enums.EnumsClass
747                     {
748                         Name = field.Name,
749                         Value = ev,
750                         Text = ((DescriptionAttribute)objs[0]).Description
751                     });
752                 }
753             }
754             return list;
755         }
756
757         #endregion
758
759         #region 获取集合中某个字段的拼接,例:获取姓名拼接
760
761         /// <summary>
762         /// 功能描述:获取集合中某个字段的拼接,例:获取姓名拼接
763         /// </summary>
764         /// <typeparam name="T"></typeparam>
765         /// <param name="list">集合</param>
766         /// <param name="strFieldName">字段名</param>
767         /// <param name="strSplit">分隔符</param>
768         /// <returns></returns>
769         public static string GetFieldValueJoin<T>(IList<T> list, string strFieldName, string strSplit)
770         {
771             //判断入口
772             if (list == null || list.Count <= 0 || string.IsNullOrEmpty(strFieldName))
773                 return string.Empty;
774
775
776             //获取属性
777             PropertyInfo _pro = typeof(T).GetProperty(strFieldName);
778             if (_pro == null)
779                 return string.Empty;
780             //变量,记录返回值
781             string _strReturn = string.Empty;
782             foreach (T _entityI in list)
783             {
784                 //获取属性值
785                 object _objValue = _pro.GetValue(_entityI, null);
786                 if (_objValue == null || string.IsNullOrEmpty(_objValue.ToString()))
787                     //没有属性值,则跳过
788                     continue;
789
790                 //有属性值,则拼接
791                 _strReturn += _objValue.ToString() + strSplit;
792             }
793
794             if (string.IsNullOrEmpty(_strReturn))
795                 return string.Empty;
796
797             return _strReturn.Substring(0, _strReturn.Length - strSplit.Length);
798         }
799
800         #endregion
801
802
803
804     }
805 }

原创文章 转载请尊重劳动成果 http://yuangang.cnblogs.com

时间: 2024-10-15 12:37:52

【C#公共帮助类】 ToolsHelper帮助类的相关文章

公共的数据库访问访问类 SqlHelper.cs

/// <summary> /// 类说明:公共的数据库访问访问类 /// </summary> using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using System.Collections; namespace DotNet.Utilities { /// <summary> /// 

【C++】C++自学旅程(7):类类型初识——类的定义

新年第一博,新年快乐! 一直不明白面对对象的“对象”是什么意思,想象不出:在学OC时出现了奇怪的语法,让程序“自己”运行:EDA的沙龙中提到了类类型,但不知道这是个什么鬼.终于这些问题的谜底要被我自己自学揭开了,哈哈哈!类类型我来啦! 类(Class)是一种自定义数据类型,是具有相同属性和行为的一组对象的集合,它是面向对象中最为重要的概念之一.类类型中有变量来存储属性和数据,叫做成员变量或数据成员,还有操作这些数据的函数,叫做成员函数. 类类型的作用: 实现封装 数据隐藏 继承和派生多态 ……

类,抽象基类,接口类三者间的区别与联系(C++)

联系很明显,三个都是‘类’,如果读者对类的概念不清楚,可以参照wid的博文http://www.cnblogs.com/mr-wid/archive/2013/02/18/2916309.html. 下面着重解释一下区别,但此文仅是个人理解,如果觉得我说的不对的地方,还请赐教. (1)结构上的区别: 普通类:数据+方法+实现 抽象类:数据+方法(一定包含虚方法n>=1)+部分方法的实现 接口类:方法(纯虚方法) (2)概念上的区别: 普通的类和另外两个的区别很明显,普通类就是猫狗之类的,而抽象类

java 类的匿名类和封装

/* 匿名对象:没有引用类型变量指向的对象称作为匿名对象. 需求: 使用 java类描述一个学生类. 匿名对象要注意的事项: 1. 我们一般不会给匿名对象赋予属性值,因为永远无法获取到. 2. 两个匿名对象永远都不可能是同一个对象. 匿名对象好处:简化书写.可以尽快释放对象的堆内存空间 匿名对象的应用场景: 1. 如果一个对象需要调用一个方法一次的时候,而调用完这个方法之后,该对象就不再使用了,这时候可以使用 匿名对象. 2. 可以作为实参调用一个函数. */ //学生类 class Stude

黑马程序员--Java基础学习笔记【Object类、String类】

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- Object类 在Java类继承结构中,java.lang.Object类位于顶端. 所有类都直接或间接继承Object类. (接口不能继承Object类,接口中隐含定义了Object类的所有公共方法,但是全抽象) Object类型的引用变量可以指向任何类型对象. Object类成员方法 public String toString() { return getClass().getName(

c++——派生类和基类转换

派生类经常(但不总是)覆盖它继承的虚函数.如果派生类没有覆盖其基类中的某个虚函数,则该虚函数的行为类似于其他的普通成员,派生类会直接继承其在基类中的版本. c++11允许派生类显式地注明它使用某个成员函数覆盖了它继承的虚函数.具体做法是在形参列表后面.或者在const成员函数的const关键字后面.或者在引用成员函数的引用限定符后面添加一个关键字override. 派生类也必须使用基类的构造函数来初始化它的基类部分.(除非基类没有显式定义构造函数,这样在派生类的构造函数中可以不显式调用基类的构造

黑马程序员——Java基础---反射Class类、Constructor类、Field类

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 反射的应用场景 一.概述 反射技术: Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类中的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的

基类与派生类的关系

任何一个类都可以派生出一个新类,派生类也可以再派生出新类,因此,基类和派生类是相对而言的. 基类与派生类之间的关系可以有如下几种描述: 1. 派生类是基类的具体化 类的层次通常反映了客观世界中某种真实的模型.在这种情况下,不难看出:基类是对若干个派生类的抽象,而派生类是基类的具体化.基类抽取了它的派生类的公共特征,而派生类通过增加行为将抽象类变为某种有用的类型. 2. 派生类是基类定义的延续 先定义一个抽象基类,该基类中有些操作并未实现.然后定义非抽象的派生类,实现抽象基类中定义的操作.例如,虚

C++ Primer 学习笔记_66_面向对象编程 -定义基类跟派生类[续]

面向对象编程 --定义基类和派生类[续] 四.virtual与其他成员函数 C++中的函数调用默认不使用动态绑定.要触发动态绑定,必须满足两个条件: 1)只有指定为虚函数的成员函数才能进行动态绑定,成员函数默认为非虚函数,非虚函数不进行动态绑定. 2)必须通过基类类型的引用或指针进行函数调用. 1.从派生类到基类的转换 因为每个派生类对象都包含基类部分,所以可以将基类类型的引用绑定到派生类对象的基类部分可以用指向基类的指针指向派生类对象: void print_total(const Item_

C++——类继承以及类初始化顺序

对于类以及类继承, 几个主要的问题:1) 继承方式: public/protected/private继承. 这是c++搞的, 实际上继承方式是一种允许子类控制的思想. 子类通过public继承, 可以把基类真实还原, 而private继承则完全把基类屏蔽掉. 这种屏蔽是相对于对象层而言的, 就是说子类的对象完全看不到基类的方法, 如果继承方式是private的话, 即使方法在基类中为public的方法. 但继承方式并不影响垂直方向的访问特性, 那就是子类的函数对基类的成员访问是不受继承方式的影