zoukankan      html  css  js  c++  java
  • 《Beginning C# Objcets》学习笔记

      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()等方法缓冲读取;

  • 相关阅读:
    Cf序列化器-Serializer解析
    yield和return
    pymongo的使用
    Homebrew介绍和使用
    TypeError: expected string or bytes-like object
    JavaScript读取文本,并渲染在html
    反序相等
    打印邮票的组合
    打印对称平方数
    字符串按照原意输出
  • 原文地址:https://www.cnblogs.com/toven/p/2277661.html
Copyright © 2011-2022 走看看