【C#的扩展方法解说】教程文章相关的互联网学习教程文章

C#圆角窗体简单实现方法

C#圆角窗体简单实现方法。分享给大家供大家参考。具体如下:?123456789101112131415161718192021publicpartialclassForm1 : Form{ publicForm1() { InitializeComponent(); } privatevoidForm1_Resize(objectsender, EventArgs e) { Type(this, 25, 0.1); } privatevoidType(Control sender, intp_1, doublep_2) { GraphicsPath oPath = newGraphicsPath(); oPath.AddClosedCurve(newPoint[] { newPoint(0, sender...

[转][C#]Linq 的扩展方法【代码】

publicstaticclass LinqEx { publicstatic IEnumerable<TResult> LeftExcludingJoin<TSource, TInner, TKey, TResult>(this IEnumerable<TSource> source,IEnumerable<TInner> inner,Func<TSource, TKey> pk,Func<TInner, TKey> fk,Func<TSource, TInner, TResult> result)where TSource : classwhere TInner : class {IEnumerable<TResult> _result = Enumerable.Empty<TResult>();_result = from s in sourcejoin i in inneron p...

C#通过反射获取类中的方法和参数个数,反射调用方法带参数【代码】

using System; using System.Reflection;namespace ConsoleApp2 {class Program{staticvoid Main(string[] args){//反射获取 命名空间+类名string className = "ConsoleApp2.ClassSample";string methodName = "test1";//传递参数Object[] paras = new Object[] { "我的", "电脑" };var t = Type.GetType(className);object obj = Activator.CreateInstance(t);try{#region 方法一//直接调用MethodInfo method = t.GetMethod("test...

C#输入输出重定向 方法二:异步process【代码】

使用事件和委托,进程有2个事件OutputDataReceived、ErrorDataReceived可用于重定向标准输出和标准错误输出; 需要注意的是InputDataReceived并不是process的事件,所以标准输入并不可以如此重定向; 使用前需加上: using System.Diagnostics; //可使用process第一步:确定必要成分 1 Process StartInfostartInfo =newProcessStartInfo(.exe); 2 startInfo.CreateNoWindow = true; //不创建窗口3 startInfo.UseShellExecute ...

C#常用类和方法

C#常用类和方法1. 数据类型转换函数 Convert.ToXXX();XXX.Parse();XXX.TryParse();2. 日期相关的类与函数获取系统当前日期(含时间):DateTime.Now获取系统当前日期(不含时间):DateTime.Today获取DateTime对象的年、月、日、时、分、秒、毫秒日期比较函数:Compare()在指定的日期上添加相应的天数、月份、年、时、分、秒获取指定年月的天数:DaysInMonth()使用TimeSpan来描述一段时间3. 字符串相关的函数字符串格式化函数...

在MVC中My97date应用C#扩展方法【代码】

项目中用的my97date,其他字段是用 @Html.EditorFor(model => model.字段)绑定的,但日历控件是用<input />绑定的,但这样写并不是特别好。为了也能用@HTML绑定属性,用了扩展方法。代码如下:publicstaticclass My97DatePicker{privatestaticstring defaultFormat = "yyyy-MM-dd";///<summary>/// 使用特定的名称生成控件 ///</summary>///<param name="helper">HtmlHelper对象</param>///<param name="name">控件名称</param>///...

C#:如何使方法过时,如何否决方法【代码】【图】

在使用.Net Frameworkd进行开发时,经常可以在方法的智能提示ToolTip上面看到一个方法是【否决的】,如图:或者在警告里面:甚至使用【否决的】方法的时候还会造成编译错误:上面的这些相信,大家在日常的开发过程中或多或少的都碰到过。为什么要否决一个方法?这个可能是该方法效率不够高、容易造成内存泄漏、或者兼容性不好等等很多原因。那么如何否决一个方法?我想很多朋友都知道:使用Obsolete特性 很不高兴的说,我到现在才知...

C#如何用delegate实现Javascript的each方法【代码】

C#中有很多易混淆的关键词,例如delegate,Func, Action和 Predicate。Func, Action和 Predicate本质上都是delegate,下面看一下delegate概念。1 delegate概念  delegate本质上就是一个指向函数的指针,可以指向不同的函数,只要函数的签名和代理一致即可。2 delegate应用  其实Func, Action, Predicate等都是delegate,只是特殊的delegate而已。delegate的巧妙应用,可以大大简化代码和提高灵活性。下面有一段Javascript代码,...

C#的扩展方法解说

扩展方法的目的就是为一个现有类型添加一个方法,现有类型既可以是int,string等数据类型,也可以是自定义的数据类型。为数据类型的添加一个方法的理解:一般来说,int数据类型有个Tostring的方法,就是把int 数据转换为字符串的类型,比如现在我们想在转换成字符串的时候还添加一点东西,比如增加一个字符 a .那么之前的Tostring就不好使了,因为它只是它我们的int数据转换为string类型的,却并不能添加一个字母 a.所以这就要用到...

2017-8-25 c# 获取url参数的五种方法(转)

假设当前页完整地址为:http://www.jbxue.com/aaa/bbb.aspx?id=5&name=kelli则: "http://"是协议名"www.jbxue.com"是域名"aaa"是站点名"bbb.aspx"是页面名(文件名)"id=5&name=kelli"是参数下面分享几个举得url中相关参数的例子,包括完整url、域名等信息。1,获取 完整url (协议名+域名+站点名+文件名+参数) 复制代码 代码示例:string url=Request.Url.ToString();url= http://www.jbxue.com/aaa/bbb.aspx?id=5&name=kelli2,...

C# DataGridView显示行号的三种方法 (转载)【代码】

C# DataGridView显示行号的三种方法(转载)源贴地址:https://blog.csdn.net/xieyufei/article/details/9769631方法一:网上最常见的做法是用DataGridView的RowPostPaint事件在RowHeaderCell中绘制行号:但是这种方法在大数据量的时候性能比较差,每次滚动数据都会触发RowPostPaint事件。privatevoid dgGrid_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) {var grid = sender as DataGridView;var rowIdx = ...

C# 对象序列化 与反序列化 封装方法【代码】

///<summary>/// BinaryFormatter序列化///</summary>///<param name="item">对象</param>publicstaticstring ToBinary<T>(T item){BinaryFormatter formatter = new BinaryFormatter();using (MemoryStream ms = new MemoryStream()){formatter.Serialize(ms, item);ms.Position = 0;byte[] bytes = ms.ToArray();StringBuilder sb = new StringBuilder();foreach (byte bt in bytes){sb.Append(string.Format("{0:X2}", bt));}re...

C#中文和UNICODE字符转换方法【代码】

1///<summary> 2/// 将Unicode编码转换为汉字字符串3///</summary> 4///<param name="str">Unicode编码字符串</param> 5///<returns>汉字字符串</returns> 6publicstaticstring ToGB2312(string str)7 {8 StringBuilder sb = new StringBuilder();9 MatchCollection mCollection2 = Regex.Matches(str, "([\\w]+)|(\\\\u([\\w]{4}))"); 10if (mCollection2 != null && mCollection2.Count > 0) 11 ...

C#时间戳的获取与转换方法【代码】

///<summary>/// 获取当前时间戳///</summary>///<param name="bflag"></param>///<returns></returns>publicstaticstring GetTimeStamp(){return GetTimeStamp(DateTime.Now);}///<summary>/// 获取指定时间戳///</summary>///<param name="date"></param>///<returns></returns>publicstaticstring GetTimeStamp(DateTime date){TimeSpan ts = date - new DateTime(1970, 1, 1, 0, 0, 0, 0);return Convert.ToInt64(ts.TotalSeco...

C# ,.net 对比两个List的方法 亲测

方案一:for循环方法等 效率过慢 数据量过大时容易卡死 不建议使用 方案二:取交集 var intersection = datalist.Intersect(ExelLsit.,new TarGetComparer()).ToList();//需要重写IEqualityComparer Equals /// </summary> //public class TarGetComparer : IEqualityComparer<arko_dim_update_id_trial> //{ // public bool Equals(arko_dim_update_id_trial x, arko_dim_update_id_trial y) ...