技术大牛的学习笔记

上传人:l**** 文档编号:47561153 上传时间:2018-07-02 格式:PDF 页数:22 大小:502KB
返回 下载 相关 举报
技术大牛的学习笔记_第1页
第1页 / 共22页
技术大牛的学习笔记_第2页
第2页 / 共22页
技术大牛的学习笔记_第3页
第3页 / 共22页
技术大牛的学习笔记_第4页
第4页 / 共22页
技术大牛的学习笔记_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《技术大牛的学习笔记》由会员分享,可在线阅读,更多相关《技术大牛的学习笔记(22页珍藏版)》请在金锄头文库上搜索。

1、 技术大牛技术大牛的的学习学习笔记笔记 我在 【解惑】计算机学习速成法 、 听杨中科吹牛 B杨中科:我的大学生活 、 程序 化的思维与一通百通,一切语言都是纸老虎 、 这么多技术我该怎么学 、 【解惑】杨中科说给弟弟的话 等文章中多次提到把一门语言玩儿深入以后再学一门新语言有多容易。 但是 很多同学可能没有直观的感受,下面就是我工作中由于用到 C#、groovy、ruby 等语言,临时学习、现学现卖的一些笔记,学这些语言,我用了多则一周,少则一两天就可以达到使用 这些新语言“干活解决问题”的程度。 我的 ruby 学习笔记(因为之前用过和 ruby 类似的 python,所以是对照 pytho

2、n 进行对照式学习的) 1、map 的声明方法: m=“1“=“3“,“2“=“aa“ 2、if count10 . elsif c90 应用强大的 block: m= (1.100).each|a| ma=a*a m.each|a|puts a 12、block 与变长参数: class FileProcess def FileProcess.process(*args) f = File.open(*args) yield f f.close() end end FileProcess.process(“c:/boot.ini“,“r“) |file| while line=file.ge

3、ts puts line end 另一种用法: FileProcess.process(“c:/boot.ini“,“r“) do |file| while line=file.gets puts line end end 13、闭包: class MyClass def initialize(% mod;+ next;- previous;* power;| or; xor; negate;a a.getAt(b);a = c a.putAt(b,c);ab a.rightShift(b);ab a rightShiftUnsigned(b); switch(a)case b: b.isCa

4、se(a);a=b a.equals(b); ab pareTo(b); ab pareTo(b)0; a=b pareTo(b)=0; a s+=number+ assert s=0 0.1 0.2 0.3 0.4 17 List 的常见操作 assert 1,2,3.flattern()=1,2,3/扁平化 assert 1,2,3.intersect(4,3,1)=3,1/交集 assert 1,2,3.disjoint(4.5,6) list = 1,2,3 assert list.pop()=3/像使用堆栈一样 assert 3,1,2.sort()=1,2,3 assert 1=1

5、,1,1.unique()/去掉重复元素 def list=1,2,3 assert list.count(2)=1 assert list.max()=3 assert list.min()=1 def even = list.finditem- item%2=0 assert even =2 assert list.everyitem- item item store+=item /反向遍历 assert 1,2,3.join(-)=1-2-3 for(i in 1,2,3) println i 18 文件处理: new File(a.txt).eachLineprintln it 19

6、groovy 中 xml 处理非常简单,可以参考 blogjava 上的一篇名为“Groovy 高效编程生 成 XML 文件”的文章。 20 Groovy 中使用 Swing 构建界面: import grooby.swing.SwingBuilder swing = new SwingBuilder() frame = swing.frame(titile:Demo) menuBar menu(File) menuItem New menuItem Open panle label Label my slider() comboBox(items:1,2,3) frame.pack() fr

7、ame.show() 21 groovy 中简化了 jdbc 访问数据库的方法,提供了 execute、eachRow 等方法,无需开发人员关心关闭连接等问题。 22 java 中运行 grooby 脚本的方法: GroovyShell shell = new GroovyShell() Object result = shell.evaluate(“12+23“) 23 Groovy 解析引擎的类为 GroovyScriptEngine def engine = new GroovyScriptEngine(“.“) def value = engine.run(“test/MyScript

8、.grooby“,new Binding() 我的 C#学习笔记(由于对 Java 比较熟,而 C#和 Java 类似,因此是对照 Java 进行对照式学习的) : 1 枚举定义: enum BillStatus:int AddNew = 1, Audit = 2, Delete = 3 把 AddNew 转化成对应 int 的方法:直接强制转型,int a= (int)BillStatus.AddNew。 也可以把 string 转换为枚举值,但其语法略复杂一些。有一个特定的命令用于这种类型 的转换,即 EnumParse(),使用方式: (enumarationType)Enum.Pars

9、e(typeof(enumerdionType),enumerdionString); 使用了另一个运算符 typeof 可以得到操作数的类型。 例如:int a = (int)Enum.Parse(typeof(BillStatus),“AddNew“); MessageBox.Show(this,a.ToString(); Enum 工具类中有 GetValues 等操纵枚举的方法。例如: String names = Enum.GetNames(typeof(BillStatus); foreach(String s in names) MessageBox.Show(this,s);

10、实例: Object obj = some.a; if(obj is Enum) int value = (int)obj; Console.WriteLine(value); Object en = Enum.Parse(obj.GetType(),value.ToString(); Console.WriteLine(en.GetType()+“:“+en.ToString(); 2 C#中基本类型也是类。比如: int a = (int)Enum.Parse(typeof(BillStatus),“AddNew“); MessageBox.Show(this,a.ToString();

11、3 委托 委托是一种可以把引用存储为函数的类型。 委托的声明常类似于函数,但不带函数体,且要使用 delegate 关键字。 委托的声明指定了一个函数签名, 其中包含一个返回类型和参数 列表。在定义了委托后,就可以声明该委托类型的变量。接着切始化这个变量为与委托有相同签名的函数引川。之后,就可以便用委托变量调用这个函数。 delegate double processDelegate(double param1,double param2) static double Multiply(double param1,double param2) return param1*param2; pro

12、cessDelegate aPro = new processDelegate(Multiply); aPro(2,2); C# 中 委 托 的 机 制 和Delphi中 的 事 件 机 制 类 似 。 例 如myTimer+=new EclapsedEventHandler(doTimer);这样就为 Timer 的 onTimer 指定了处理函数。不同点在于可以通过 myTimer+=的方式为事件指定多个处理函数,这一点又和 java 中事件列表类似。 自定义事件的实现: 定义一个名称为 MessageHanler 的委托,然后 public event MessageHanler msg

13、Arrived; 想要 4、 Debug.writeLine() Trace.writeLine() Debug.Assert() Trace. Assert () 5、 在默认情况下,类声明为内部的,即只有当前工程中的代码才能访问它。可以用 intemal 访 问修饰符关键字显式指定,但这是不必要的。 在类定义中指定继承。为此,要在类名的后面加上一个冒号,其后是基类名 域也可以他用关键字 readonly, 表示这个域只能在执行构造函数的过程中赋值 例如: public readonly int MyInt17; 也可以在方法定义中使用下述关键字:virtual,override,abstr

14、act,extern。 如果使用了 override, 可以使用 sealed指定在派生类中不能重写此方法。 public override sealed void DoSome () 如果确实要隐藏该成员,就可以使用 new 关键字显式地说明,这是我们要隐藏的成员: new public void DoIt() .NET 中的大多数控件都派生于 SystemWindowsFormsContro 类。 6 C#支持运算符重载,语法和 C+的一样。 7 C# 支持 is as 运算符,和 Delphi 类似。 8 System.Exception 9 if(dlg.ShowDialog()=Di

15、alogResult.OK) 10 读取文本文件的方法: using(StreamReader reader=File.OpenText(filaName) text.Text = reader.ReadToEnd(); 11 SaveFiIeDialog 的 AddExtension 是一个布尔属性,它定义了文件扩展名是否应白动添加到用户输入的文件名,它使用 DefaultExt 作为默认扩展名。 12 数据库操作: (1) this.oleDbDataAdapter1.Fill(this.dataSet11,0,0,“T_Agentist“); (2) this.BindingContextthis.dataSet11,“T_Agentist“.Position+; (3) oleDbConnection1.Open(); OleDbCommand command = this.oleDbConnection1.CreateCommand(); command.CommandText = “select * from T_Agentist“; OleDbDataReader reader = comma

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号