zoukankan      html  css  js  c++  java
  • 【C#】与C及OC的不同点

    事实上熟悉这些语言的朋友们深知,这几个语言全然没有可比性。

    因为工作须要,近期须要重温C#语言,难免会受到C和OC的基础知识影响。

    此篇是本人的一个学习笔记。仅此献给有C/OC基础,须要继续学习C#的朋友们。


    博文首发地址:http://blog.csdn.net/duzixi


    今后不断更新。欢迎大家补充修正(最后更新日期:2014.11.6)


     第1讲 基础:常量 变量 运算符 表达式 语句
    ***** C#提供的基本类型很多其它。划分更细

    ***** C#里bool类型就是bool类型,严格差别于整形

    ***** C#中的控制台输入都是字符流。获取其他类型须要用Parse方法转化
    int a = int.Parse(Console.Readline());

    ***** C#的声明与实现不分离
    《C#本质论 (第三版)》p.121


     第2讲 分支结构
    ***** C#里switch case 中 switch表达式的值还能够是字符串类型

     第3讲 循环结构  数组

    ***** C#的数组本质是System.Array 的对象。

    它是全部数组类型的抽象基类型。

    必须进行实例化。

    声明数组时,方括号 ([]) 必须跟在类型后面。而不是标识符后面,且数组的大小不是其类型的一部分。

    如:
    bool[], byte[], int[],  float[], double[], string[], 

    *****  C#里二维数组和数组的数组(交错数组)是两个东西
    二维数组定义:
    string[,] names;
    交错数组 (jagged array)
    byte[][] scores;
    http://msdn.microsoft.com/zh-cn/library/aa288453(v=vs.71).aspx

    ***** C#里数组能够直接赋值,可是和C一样不能直接做加减运算

     第4讲 枚举和结构体
    ***** C#中枚举不是一个单纯的整形常量
    http://msdn.microsoft.com/zh-cn/library/cc138362.aspx

    ***** C#中的结构体更强大、更灵活。里面能够直接包括方法

    ***** C#中结构体的成员变量类型修饰符必须是public
    结构能够实现接口。但它们无法继承还有一个结构。 因此,结构成员无法声明为 protected
    http://msdn.microsoft.com/zh-cn/library/ah19swz4.aspx

     第5讲 引用类型 字符串
    ***** C#有独特的引用类型。是装箱获得的
    值类型装箱后会被扔到堆里
    http://msdn.microsoft.com/zh-cn/library/yz2be5wk.aspx

    ***** C#的字符串是一个类

     第6讲 类

    ***** C#的类里包括方法、属性、字段、事件、托付以及内部嵌套的类等
    http://msdn.microsoft.com/zh-cn/library/ms173113.aspx
    一个类可包括下列成员的声明:
    构造函数(Constructor)
    析构函数
    常量(Const)
    字段(Field)
    方法(Method)
    属性(Property)
    索引器(Indexers)
    运算符(Operator)
    事件(Event)
    托付(Delegate)
    (Class)
    接口(Interface)
    结构(Struct)

    ***** C#里的修饰符特别丰富、能够修饰好多东西
    1.訪问级别、控制有效范围和权限的:public protected private internal
    2.控制内存分配区域的:static const
    3.声明函数參数的:ref out params
    4. 虚实:virtual
    http://msdn.microsoft.com/zh-cn/library/9fkccyh4.aspx

    ***** 訪问权限

    在其它选件类中能够直接在命名空间内声明的选件类,未嵌套。能够是 公开 或 内部。 默认情况下选件类是 internal

    类成员,包含嵌套选件类,能够是 公开protected internal保护内部或 专用。 默认情况下成员是 专用

    http://msdn.microsoft.com/zh-cn/library/0b0thckt.aspx

    ***** C#的属性
    能够是仅仅写的
    在字段的基础上创建,属性开头字母是大写的

    ***** C#的函数仅仅能在类里面定义

    ***** C#有密封类

    ***** C#有base语句
    构造函数能够使用 base keyword来调用基类的构造函数。
    http://msdn.microsoft.com/zh-cn/library/ms173115.aspx

     第7讲 方法(函数)

    ***** C#的方法仅仅能出如今类和结构体里

    ***** C#里有方法签名的概念
    方法名 參数 及 參数类型
    http://msdn.microsoft.com/zh-cn/library/ms173114.aspx

    ***** C#的函数參数是有修饰符的
    ref:引用參数
    out:输出參数
    params:一维数组

    ***** C#通过析构函数释放内存资源

    ***** C#有虚方法
    http://msdn.microsoft.com/zh-cn/library/9fkccyh4.aspx

    ***** C#中称之为方法签名


     第8讲 面向对象
    ***** C#中有继承关系的两个类分别叫基类和派生类
    当基类将方法声明为 virtual 时。派生类能够用自己的实现重写该方法。 
    http://msdn.microsoft.com/zh-cn/library/ms173149.aspx?sentenceGu=431ef25c6bea78755c146f18e5e213ae#mt9

    ***** C#的多态比較多态,有多种实现方式

     第9讲 静态类和抽象类

    ***** 静态类和抽象类是C#独有的

     第10讲 接口和泛型
    ***** C#的接口类似OC的协议
    http://blog.csdn.net/byondocean/article/details/6871881


     第11讲 集合
    ***** C#的集合分为泛型集合和非泛型集合
    http://msdn.microsoft.com/zh-cn/library/yz2be5wk.aspx


     第12讲 托付和事件
    ***** C#的托付类似于C的函数指针。可是类型安全。已经被封装成了一个类型

    ***** C#的观察者设计模式由托付和事件来实现

     第13讲 反射
    ***** 反射是C#独有的


    总的来说,感觉C#的修饰符特别的丰富,关于修饰符的内容还在整理中。

  • 相关阅读:
    通过AI识图判断图片是否为小票
    orcl 定时器
    防止表单重复提交常规方法
    代码规范案例(ssh分页)
    jquery的ajax提交时“加载中”提示的处理方法
    利用JS弹出层实现简单的动态提示“正在加载中,请稍等...”
    jquery 排序table的列
    Java多线程与网络编程综合使用
    大型Oracle数据库设计方案(精华)
    20155307 2016-2017-2 《Java程序设计》第10周学习总结
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5331972.html
Copyright © 2011-2022 走看看