C#入门经典学习小结(凌乱)

CLR: common language runtime(.net 公共语言运行库)管理.net库开发的所有应用程序的执行
CTS: common type system (通用类型系统)指定最基本类型有助于使用.NET Framework的各种语言之间进行交互操作
CIL:common intermediate language (通用中间语言) 编译代码为该语言,CIL代码独立于计算机、os、cpu的,由JIT编译器使用创建所需的本机代码
JIT: just in time (CIL代码仅在需要时才编译)
托管代码:将代码编译为CIL,存储在程序集中,再用JIT编译器将它编译为本机所需代码,还需要管理正在执行的用.NET Framework编写的代码。

创建.NET应用程序所需步骤:
->使用C#编写应用程序代码
->把代码编译为CIL,存储在程序集中
->执行代码时,必须使用JIT编译器将代码编译为本机代码
->在托管的CLR环境下运行本机代码

重置vs c#development settings设置:错误 1: 为“CoffeeScript”[代码 5297] 导入设置时出错。

转义序列 例如用\“来转义“双引号,用\n是换行符的转义序列
字符串插入:如输出Console.WriteLine($"{outline}");
运算符优先级:++,--用作前缀,(),+,-一元时,!,~
*,/,%
+,-
<<,>>
<,>,<=,>=
==,!=
&
^
|
&&
||
=,*=,/=,%=,+=,-=,<<=,>>=,&=,^=,|=
++,--用作后缀

C#的分支技术:三元运算符,if语句,switch语句
switch语句在C++中可以运行完一个case语句后运行另一个case,但在C#中这样做是非法的,每个case语句需要一个break中断switch执行
          另外可以使用return语句,不仅中断switch结构,还中断当前函数的执行;还可以用goto语句
三种循环:do循环,while循环,for循环
循环的中断命令:break,continue,return

使用checked设置溢出检查上下文

枚举:枚举值转换为其他类型,需要显式转换

用replace("str1","str2"),替换函数,用str2替换字符串中所有的str1
<string>.Trim()命令,删除空格,可以添加char数组定义删除字符,测试代码时发现trim()出现问题,反而trim(mycahr),[]mychar={' '}

引用传递参数   ref关键字,改变调用的参数值,必须使用初始化之后的‘非常量const’的变量。
或者使用输出参数  out关键字,可以使用未赋值的变量,函数使用out时必须将其看作尚未赋值。
static关键字定义全局变量,const定义全局常量

函数的签名包含函数的名称及其参数,不包含其返回类型
委托:一种存储函数引用的类型,不带函数体,使用delegate关键字,委托声明指定了一个返回类型和一个参数列表

类:理解为车规划图纸,对象:理解为汽车本身。
类决定了对象将要拥有的属性和行为。
class progrem
{  //可以写字段、函数、属性、构造函数。。
   //字段:存储数据      属性:保护字段 get set (对自动属性进行保护的时候需要实例化)       函数:描述对象的行为      构造函数:初始化对象,给对象的每个属性进行赋值
}

传智播客 基础加强1:
    oop:
                封装:
        --->减少了大量的冗余代码
        --->封装将一坨很难理解的功能封装起来,但是对外提供了一个很简单的使用接口。我们会使用就OK。
    继承:
        --->减少了类中的冗余代码
        --->让类与类产生了关系,为多态打下了基础。
        特性:
            单根性:一个子类只能有一个父类
            传递性:爷爷类 爹类 儿子类
        里氏转换:
            1、子类可以赋值给父类
            2、如果父类中装的是子类对象,则可以将这个父类转换为对应的子类对象
            ---->关键字
                1、is:返回bool类型,指示是否可以做这个转换
                2、as:如果转换成功,则返回对象,否则返回null
            作用:我们可以将所有的子类都当做是父类来看,针对父类进行编程,写出通用的代码,适应需求的不断改变。    
    多态:
        --->虚方法
            virtual override
        --->抽象类
            abstract override
        --->接口
            interface 


    关键字
        new
            1、创建对象
                --->在堆中开辟空间(对象是引用类型,引用类型的值都在堆里)
                --->在开辟的堆空间中创建对象
                --->调用对象的构造函数
            2、隐藏父类的成员    (当子类的函数名和父类一样时)
        this
            1、代表当前类的对象
            2、显示的调用自己的构造函数
        base
            1、显示调用父类的构造函数(并不是父类的对象)
            2、调用父类的成员


静态构造函数只能在以下情况下执行:
*创建包含静态构造函数的类实例时
*访问包含静态构造函数的类的静态成员时

string和object是简单的引用类型,数组是隐式的引用类型,创建的每个类都是引用类型
编译器不允许派生类的可访问性高于基类。
接口的指定必须放在基类继承之后,用逗号隔开。
接口没有关键字abstract和sealed(它们不包含实现代码,不能直接实例化,且必须是可以继承)。接口不是类,所以没有继承System.Object

system.Object包含的方法:
    Equals()   bool
    ReferenceEquals() bool:比较传送给它的两个对象,是不是同一个实例的引用
    ToString()   String:返回对应于对象实例的字符串
    MemberwiseClone()  object:创建一个新对象实例并复制成员,以复制该对象
    GetType()  System.Type:返回对

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值