• 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/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    acceptorThreadCount
    spring boot tomcat 线程数 修改初始线程数 统计性能 每百次请求耗时
    java 获取当前进程id 线程id
    Linux操作系统中打开文件数量的查看方法
    java.io.IOException: Too many open files
    随机采样 算法
    Spring Boot
    您好,python的请求es的http库是urllib3, 一个请求到贵司的es节点,想了解下,中间有哪些网关啊?冒昧推测,贵司的部分公共网关与python-urllib3的对接存在异常?
    运行状态:锁定中(实例空间满自动锁)
    。。。。。。不带http https : 不报错 spring boot elasticsearch rest
  • 原文地址:https://www.cnblogs.com/ylbtech/p/3623063.html
Copyright © 2020-2023  润新知