zoukankan      html  css  js  c++  java
  • C# 的概念

    1,C#-ASP.NET

    C# 的概念

    2,Intro
    ASP.NET
    一,基本概念:
    1,C#--语言
    microsoft 开发的纯面向对象的语言,是VS2005的主流开发语言。
    语言的发展
    C-->面向过程的高级语言
    |
    C++-->面向对象的语言,向下兼容C,带有面向过程的特点,混合语言,语法强大,难度大。
    |
    JAVA-->纯面向对象,从C++演变而来,去除了C++中难的知识点,如:指针,多继承,运算符重载等等,又称之为C++--,相对C++简单。
    |
    C# -->纯面向对象,java演变过来,修正了java中的一些问题,引入了最新的理论成果。比java晚10年,例如,对xml的支持是先天的,
    |
    未来
    2,Microsoft Visual Studio 2005--开发平台,解决方案,不能简单称之为软件。
    特点:
    1)跨语言,多语言支持
    vc++.net J# javascript vb.net C#
    深层次上的支持,用vb做的类,在c#工程中可以直接使用(继承)。
    但是 主流语言--- C#
    2)只能在window下使用。
    3) 做什么开发?
    ---C/S client/server 客户端/服务器 例如QQ,例如二期的窗口项目。
    特点:每个客户端都需要安装。维护不方便。效果好
    --主要使用 C# C++
    ---B/S brower/server 浏览器/服务器 例子:网银,邮箱,网站。
    特点:客户之需要有浏览器就可以,一切资源在唯一的服务器上。维护成本低。效果差
    --主要使用 JAVA C# PHP
    --我们,B/S
    ---Mobil 移动设备开发
    ---嵌入式开发
    4) 不开源
    二,C#2.0数据类型
    1,所有C#的数据类型均为类,纯面向对象。
    例如:int -- java,c语言中是基本数据类型,C#是类System.Int32的别名
    int a;//定义类一个a对象
    short -- System.Int16
    long -- System.Int64
    bool -- System.Boolean
    string-- System.String
    2,数据类型的分类
    按数据在内存中的位置分为两种:
    堆--容量大,速度慢,垃圾
    栈--容量小,速度快,先进后出,后进先出。没有垃圾
    1)值类型---数据存放在栈中
    原始类型:int short long bool char
    复杂类型:结构 枚举
    2)引用型---数据存放在堆中
    原始类型:string object
    复杂类型:类,接口,数组,委托
    案例1,数值型与引用型数据的区别。
    注意:Person p1=new Person("张三");
    会同时在堆与栈中分配空间:对象空间("张三")在堆中,p1(引用)在栈中。
    重点:学会描述内存垃圾的生成,及垃圾空间(只有堆中有)的回收。
    3,结构体与类的区分(案例2)
    --结构体--值类型
    --类 --引用类型
    4,装箱与拆箱
    装箱-- 将值类型赋给引用类型
    int a=45;
    object o=a;//装箱,数据45从栈空间copy到堆空间
    拆箱-- 将引用类型赋给值类型
    object o=new object(45);
    int j=(int)o;//拆箱,数据45从堆空间copy到栈空间
    案例3
    5,字符串问题:
    string s1="abcd";
    注意问题:string是引用类型,但是与其他引用类型不同,因为"abcd" 是常量,保存在栈尾的一个特殊区域。
    s1="xyz";//系统重新为“xyz”分配空间,将s1指向“xyz”的空间,而不会修改“abcd”为“xyzd”
    此外
    string s1="abcd";
    string s2="abcd";
    问:系统会分配 1 个"abcd"空间,因为"abcd"是常量,只要分配空间,就始终使用。
    此外:
    string s1="xyz10万";
    s1=s1+"a";//会占用两块空间,一块放置 "xyz10万",一块放置"xyz10万a",然后将"xyz10万a"赋给s1,然后释放"xyz10万"空间,会有峰值内存占用过大的风险。
    6,数组 案例4
    1)一维数组
    int []a=new int[]{1,2,5,88};
    2)定长二维数组
    int[,] b = new int[3, 2] { {1,2 }, {5,8 }, {222,888 } };
    3)可变长二维数组
    int[][] c = new int[3][];
    c[0] = new int[] { 2,5};
    c[1] = new int[] {100,200,300,400,500 };
    c[2] = new int[] { 3,6,9};
    三,字符串操作
    四,面向对象---封装,抽象,继承,多态
    1,命名规则
    匈牙利法 -- C++ 
    float f_price;
    骆驼法命名-- java C#
    名字使用多个单词,每个单词的首字母大写,但是第一个字母另有用处。
    具体:
    命名空间名称(包名),类名,方法名,属性名 --骆驼,首字母大写,抬头骆驼
    class ShouJiLei
    局部变量,形参,域名 --骆驼,首字母小写,低头骆驼
    string zhangSanDeShouJiPinPai;
    常量 --全部大写,不是骆驼
    double PI=3.1415926;
    关键字 --全部小写 for int
    2,抽象 -- 不是指抽象方法,抽象类
    将具体的对象,归纳,总结,提取其共有的特性(静态特性+动态特性),形成一般化的规则,抽象。
    实体--------->类
    抽象
    对象--- 世间万物均为对象,
    类 --- 规则
    类包含--》静态+动态
    属性+方法
    class 手机类
    {
    //静态
    string 颜色;
    int 重量;
    int 长;
    string 号码
    //动态
    打电话
    发短信
    }
    3,封装。
    将类中的所有字段私有化,private,私有化后的字段不能在类外使用。
    目的:保护类中的技术细节
    正常的对私有字段的访问,可以通过方法或公共属性来完成。当然在方法或属性可以进行验证。
    4,重点:公有属性的构建---java的getter/setter
    int id;//字段,域,私有,只能在本类使用
    //公有属性 ,可以在类外使用
    public int Id
    {
    get{return id;}
    set{id=value;}
    }
     

     Mar 24,2010 每天笑一笑没有什么大不了的 谢谢你妹妹~ by luxin&mengling

    warn 作者:ylbtech
    出处:http://ylbtech.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Spring@Profile注解
    day 32 子进程的开启 及其用法
    day 31 udp 协议SOCK_DGRAM
    day 30 客户端获取cmd 命令的步骤
    day 29 socket 理论
    day 29 socket 初级版
    有关 组合 继承
    day 27 多态 接口 类方法 静态方法 hashlib 摘要算法模块
    新式类和经典类的区别
    day 28 hasattr getattr serattr delattr 和带__内置__ 类的内置方法
  • 原文地址:https://www.cnblogs.com/ylbtech/p/3623063.html
Copyright © 2011-2022 走看看