11年8月底从android平台转为windows phone平台的开发负责人,以前从未学习过C#,由于在android平台上开发优秀,部门经理让我尝试一下;对以技术为主的我而言,积累的知识和项目经验也可以尝试一下多平台了,以开阔技术视野,对比学习,而且Java和C#都是基于虚拟机的语言,是一个不错的选择,学习过程做一个笔记:

《Beginning C# Objcets》不错的基础入门书籍:一个星期左右快速阅读,熟悉基本语法,将C#一些用法与Java做类比学习,如下:

1.char 为16位unicode类型;Java中尽量少用;

2.输出Consele.WriteLine("log")==System.out.println("log")
3.using == import;namespace==package;默认使用全局命名空间;System 命名空间类似Java中java.包的命名空间;
4.string、int、bool为预定义的System命名空间中的类型String等类的别名;new String("str")方式不允许,写成String str = "str";@开头可以加入转义字符;可用数组[]操作;
String类的==比较的是值,其它预定义类比较的是引用,建议使用Object.ReferenceEquals(obj1,obj2)比较的对象引用/句柄;obj1.Equals(obj2)在不同类中可以被override,根据不同类的定义不同,比较值;
obj.ToString()简单返回对象类型的全名;
5.static void Main()方法大写,方法命名大写字母开头,公有属性开头为大写字母;
6.术语:句柄==引用;
7.getter/setter方法可用property代替,public string Name { get{return name;} set {name = value} },Name将private属性的name首字母大写,参数名value由编译器传入;
8.方法中局部变量声明后需初始化,不会被默认初始化;类字段默认初始化为0/null,由类构造器初始化;
9.关联:学生 修 课程
链接:具体学生实例 修 具体课程实例
10.继承:冒号 特殊化specialization :普遍化generalization
方法覆盖:virtual声明、override实现、base
方法隐藏--非virtual方法覆盖:new,返回类型可以不同;非多态,只调用base类中方法;abstract方法不能被隐藏;
11.overload:不同方法签名
12.Collections:基本类型int等也作为对象存储引用;
枚举器IEnumerator、MoveNext()、Current
foreach(Object obj in objs)
可用[]的数组操作

SortedList 有序列表;
Set 集合,不允许有重复对象引用
Dictionary 字典,key-value; Hashtable
13.多态==继承+override
14.interface:方法不能有public、abstract
15.static:只能通过类名+点调用,static属性命名私有的canel方式小写开头,方便写Property,公有的Pascal方式大写字母开头;static方法不能override,也不能abstract;
16.const常量:默认为static,不能加static,声明时赋给可以编译时得到计算结果的值;
17.csc /t:library dll.cs 生成dll.dll库;
csc /t:exe exe.cs 生成exe可执行文件
csc exe.cs /r:dll.dll 动态链接dll库生成exe可执行文件exe
/main 指定程序入口文件
/out 指定编译输出exe、dll文件名
18.微软中间字节码语言MSIL==Java字节码
.NET公共运行时CLR==Java运行环境JRE虚拟机
.NET框架类库--FCL
19.exception:C#编译器不强制进行异常处理;
20.调用类中其它构造函数--:this(arg...)或者:base(arg...)
21.typeof==instanceof
22.元注解[obsolete] == @deprecated
23.FileStream(filename, FileMode):字节流-->StreamReader.ReadLine()等方法缓冲读取;

转载于:https://www.cnblogs.com/toven/archive/2011/12/06/2277661.html

《Beginning C# Objcets》学习笔记相关推荐

  1. 第二行代码学习笔记——第六章:数据储存全方案——详解持久化技术

    本章要点 任何一个应用程序,总是不停的和数据打交道. 瞬时数据:指储存在内存当中,有可能因为程序关闭或其他原因导致内存被回收而丢失的数据. 数据持久化技术,为了解决关键性数据的丢失. 6.1 持久化技 ...

  2. 第一行代码学习笔记第二章——探究活动

    知识点目录 2.1 活动是什么 2.2 活动的基本用法 2.2.1 手动创建活动 2.2.2 创建和加载布局 2.2.3 在AndroidManifest文件中注册 2.2.4 在活动中使用Toast ...

  3. 第一行代码学习笔记第八章——运用手机多媒体

    知识点目录 8.1 将程序运行到手机上 8.2 使用通知 * 8.2.1 通知的基本使用 * 8.2.2 通知的进阶技巧 * 8.2.3 通知的高级功能 8.3 调用摄像头和相册 * 8.3.1 调用 ...

  4. 第一行代码学习笔记第六章——详解持久化技术

    知识点目录 6.1 持久化技术简介 6.2 文件存储 * 6.2.1 将数据存储到文件中 * 6.2.2 从文件中读取数据 6.3 SharedPreferences存储 * 6.3.1 将数据存储到 ...

  5. 第一行代码学习笔记第三章——UI开发的点点滴滴

    知识点目录 3.1 如何编写程序界面 3.2 常用控件的使用方法 * 3.2.1 TextView * 3.2.2 Button * 3.2.3 EditText * 3.2.4 ImageView ...

  6. 第一行代码学习笔记第十章——探究服务

    知识点目录 10.1 服务是什么 10.2 Android多线程编程 * 10.2.1 线程的基本用法 * 10.2.2 在子线程中更新UI * 10.2.3 解析异步消息处理机制 * 10.2.4 ...

  7. 第一行代码学习笔记第七章——探究内容提供器

    知识点目录 7.1 内容提供器简介 7.2 运行权限 * 7.2.1 Android权限机制详解 * 7.2.2 在程序运行时申请权限 7.3 访问其他程序中的数据 * 7.3.1 ContentRe ...

  8. 第一行代码学习笔记第五章——详解广播机制

    知识点目录 5.1 广播机制 5.2 接收系统广播 * 5.2.1 动态注册监听网络变化 * 5.2.2 静态注册实现开机广播 5.3 发送自定义广播 * 5.3.1 发送标准广播 * 5.3.2 发 ...

  9. 第一行代码学习笔记第九章——使用网络技术

    知识点目录 9.1 WebView的用法 9.2 使用HTTP协议访问网络 * 9.2.1 使用HttpURLConnection * 9.2.2 使用OkHttp 9.3 解析XML格式数据 * 9 ...

  10. 安卓教程----第一行代码学习笔记

    安卓概述 系统架构 Linux内核层,还包括各种底层驱动,如相机驱动.电源驱动等 系统运行库层,包含一些c/c++的库,如浏览器内核webkit.SQLlite.3D绘图openGL.用于java运行 ...

最新文章

  1. 从门禁系统的使用体验看良好的交互设计原则
  2. 甲骨文全球大会——看SOA
  3. Python机器学习算法 — 逻辑回归(Logistic Regression)
  4. Longest Substring with At Most Two Distinct
  5. 三篇论文之bigtable
  6. 被冻结的钱,银行可以私自处理吗?
  7. 任何在aix下面看你的系统是32位还是64位的
  8. 如何将索引碎片数量降至最低
  9. PCIe5.0 协议
  10. 视频音频剪辑合并软件 免费强大 LosslessCut
  11. 多家波卡生态项目招聘开发者,高薪职位等你来 Pick
  12. java路径为什么拒绝访问_为什么拒绝访问路径?
  13. QT:主页面全屏显示(根据显示屏分辨率调整主页面尺寸)
  14. Vue项目实战——实现一个任务清单【基于 Vue3.x 全家桶(简易版)】
  15. BSN-DDC基础网络的DID功能设计
  16. 【海康视频SDK】linux服务器端截图与下载视频
  17. 黑马全套Java教程(八):集合进阶
  18. 性能测试基础(四)吞吐量
  19. 音视频技术开发周刊 | 260
  20. java图片裁剪类似qq头像_Android实现类似换QQ头像功能(图片裁剪)

热门文章

  1. Ubuntu 12.04LTS 找不到eth0网卡
  2. JButton 做图片框
  3. 关于android 图像格式问题
  4. 文件共享之Samba
  5. 安装并测试nvenc linux sdk
  6. Nginx 入门级配置
  7. 如果拿到私钥的话,https会被攻击吗?
  8. load data详解
  9. 配置DATAGUARD 时关于 LOG_FILE_NAME_CONVERT配置错误的解决
  10. 学习笔记:ORACLE 性能优化求生指南