解决方案 »
- winform中在MDI主窗体显示多个子窗体
- c#关于远程访问数据,在线等
- winform程序占用资源一多,就会无声无息自动关闭消失。这个问题能解决吗?
- C# 速度最快的字串匹配
- 十万火急!10w条记录的DataSet remoting 服务段 取数没问题 RETURN返回时候报OutOfMemoryException
- Visual Studio 2008 Traing Material
- vs 2005z最大的Bug-全角半角自动自动切换
- C#中用户控件是干什么用的
- 抽象类、抽象方法?
- 如何用正则表达式过滤掉某些汉字?
- .NET Reflector反编译问题
- WPFToolkit Xaml 引用不起作用。
扩展方法主要是针对某一些类型来使用时较好,比如.net Framework中的IEnumerable接口的扩展
真搞不懂,宁可大量的复制粘贴代码,看上去津津有味的。诶。郁闷。
写代码给自己看的,想怎么写都可以。但写代码给别人看时,最好你的写的代码是很多人都能看得懂的。
public static string ToHexString(this byte[] data)
{
return string.Join("-", data.AsParallel().Select(d => d.ToString("X2")).ToArray());
}
public static byte[] ToByte(this string s)
{
return s.Split('-').AsParallel().Select(x => Convert.ToByte(x, 16)).ToArray();
}
瞬间感觉高大上有木有???还是很不错的...虽然我不知道这样用对不对.......
如果没人回复就可以编辑.只要有人回复了 就不能编辑了...
若若的问下 你知道AsParallel是什么意思不.......
使用AsEnumable无非就是想让他可以使用where或者select..但是数组本身就有了where,select方法啊..难道 int[] a = new int[1] { 1 };
var b = a.AsEnumerable().First();
var c=a.First();b就行 c就不行了??这又不是DataTable得需要
DataTable dt = new DataTable();
var q = dt.AsEnumerable().Where(d => d.Field<int>("age") > 8);
感谢你的回复
但是呢,并不认可你所有回复
1,2,你这毫无说服力,如果可能,详细描述一下?
3.此处并不需要访问私有的,我做的设计,尽量都使用公开的属性。
4.我已经按照领导的做法修改了程序了。
a.不使用扩展方法,并很2的把生成的xml片段使用重写ToString的方式返回
b.不使用xml序列化方法,而且不使用XmlDocument,而是自己拼接几行类似xml的标签行
c.因为自创格式,所以无法用XmlDocument读取,只好自己用正则分析取回的数据
d.原本统一的一个处理,完全可以自描述的格式,现在已经拆开,需要一堆的switch...case了,Oh,yeah,我以前自认为是设计师,经过这个领导的“洗礼”,我终于知道“码农”和“设计师”之间思想的鸿沟以及“码农”为什么被称之为“码农”了,我惊人的发现,这样垃圾的写法,其实代码行增加了至少10倍,如果按代码行算工资,我已经可以比以前多拿很多奖金了,原来按代码行算收入是这类人!懂了!
如果没人回复就可以编辑.只要有人回复了 就不能编辑了...
若若的问下 你知道AsParallel是什么意思不.......谢告知
如果允许(比如你的类是自己的代码有完全的控制权),最好还是不进行扩展,而在类内部实现。至于调用方便问题,你定义个接口让这6个类都实现就好了
使用AsEnumable无非就是想让他可以使用where或者select..但是数组本身就有了where,select方法啊..难道 int[] a = new int[1] { 1 };
var b = a.AsEnumerable().First();
var c=a.First();b就行 c就不行了??这又不是DataTable得需要
DataTable dt = new DataTable();
var q = dt.AsEnumerable().Where(d => d.Field<int>("age") > 8);
啊没留意到……我表达的意思就是AsParallel要慎用吧。
感谢你的回复
但是呢,并不认可你所有回复
1,2,你这毫无说服力,如果可能,详细描述一下?
3.此处并不需要访问私有的,我做的设计,尽量都使用公开的属性。
4.我已经按照领导的做法修改了程序了。
a.不使用扩展方法,并很2的把生成的xml片段使用重写ToString的方式返回
b.不使用xml序列化方法,而且不使用XmlDocument,而是自己拼接几行类似xml的标签行
c.因为自创格式,所以无法用XmlDocument读取,只好自己用正则分析取回的数据
d.原本统一的一个处理,完全可以自描述的格式,现在已经拆开,需要一堆的switch...case了,Oh,yeah,我以前自认为是设计师,经过这个领导的“洗礼”,我终于知道“码农”和“设计师”之间思想的鸿沟以及“码农”为什么被称之为“码农”了,我惊人的发现,这样垃圾的写法,其实代码行增加了至少10倍,如果按代码行算工资,我已经可以比以前多拿很多奖金了,原来按代码行算收入是这类人!懂了!一般来说,在不能使用继承或者不能改写源码的情况下,才建议使用扩展方法。滥用扩展方法会给项目的扩展性,维护性和版本控制等方面造成不利影响。主要影响如下:
扩展方法本身不能访问被扩展类的私有成员;
扩展方法优先级低,所以会被被扩展类的同名方法覆盖;
扩展方法不会被派生类继承,也不能重写;
扩展方法有就近原则。如果在你的程序里有两个一模一样的扩展方法,和使用类处于同一命名空间里的扩展方法会被调用。具体的话,你要分析你的场景是否适合,是否会引起一些弊端。因为我们不清楚你的具体需求和代码。