zoukankan      html  css  js  c++  java
  • C#高级编程笔记(一)

    C#与.net

    C#本身是一种语言;.NET Framework是一个平台即一个环境。

    只是C#编译器专门用于.net,所以C#代码总是使用.net运行。

    .net Framework 的核心是运行执行环境(公共语言运行库CLR、.NET运行库).

    在CLR下运行的代码称为托管代码(mannaged code)

    CLR对于源代码(code)的执行过程:

    1..net将code编译为IL  2. CLR将IL编译为平台专用代码

    IL:Microsoft中间语言(使用数字代码)

    IL中间语言

    特点:

    1.面向对象和使用接口

    2.值类型和引用类型的显著差异

    3.强数据类型化

    4.使用异常来处理错误

    5.使用特性(attribute)

    关键词:CTS:通用类型系统 CLS:公共语言规范 

    垃圾回收:一般两种方式:手动释放;对象维护计数;

    安全性:代码访问安全性;

    应用程序域(application domain):分离组件的一种方式。(有跨应用程序域边界对象访问的方式)

    进程:用来孤立代码的唯一方式。

    所有的C#代码都必须包含在一个类中。

    类型推断(type inference): 使用var关键字。编译器根据变量的初始化值“推断”变量的类型

    变量作用域:

    字段和局部变量的作用域冲突:区分名称相同、作用域相同的两个标识符:将类级别声明的变量标识为字段,将方法中声明的变量看做局部变量,这种情况下变量可以重名(但是在方法中的变量会隐藏类级别的变量),引用类级别的变量可以使用object.fieldname(需区分静态访问Object.fieldname与非静态访问this.fieldname)

    常量(conts)

    常量总是静态的(不必在声明中使用static);必须在声明时初始化,而且指定值后不能再改写;必须能在编译时用于计算,即不能使用变量值来初始化常量(只读字段可以这么做);

    预定义数据类型

    值类型与引用类型

    值类型直接存储其值,引用类型存储对值的引用(值对象在托管堆上的地址);值类型存储在堆栈中,引用类型存储在托管堆上

    一般将自己的类型定义为值类型可以把它声明为结构。

    C#有15个预定义类型,其中13个值类型,两个引用类型(string 和 object)

    C#认可的基本类型没有内置于C#语言中,而是内置于.net framework中。eg:C#中的int 实际上是.net结构中的system.Int32;

    意义:在语法上可以把所有的基本数据类型看成是支持某些方法的类。基本类型在概念上用.net结构表示。

    eg:int i; string str = i.ToString();//这句中将int类型转换为string类型没有性能损失。

    预定义值类型:

    整型:在强调类型安全时,C#认为byte类型与char类型不同,必须显示转换;byte无符号,sbyte有符号;

    预定义引用类型:

    object类型:C#中的最终父类,所有内置类型以及用户定义的类型都从它派生。

    目的:(1).使用object引用绑定任何子类型的对象。eg:装箱、反射;

       (2).实现一般用途的基本方法,Equals(),GetHashCode(),GetType(),ToStrng().

    string类型:string类型与引用类型的区别。字符串不可改变,修改其中一个字符串,就会创建一个全新的string对象,而另一个不会改变

    eg:

    1 string str1 = "string1”;
    2 string str2 = str1;
    3 console.writeline("str1 is {0};str2 is {1}",str1,str2);
    4 str1 = "new string1";//改变str1 的值,但此时str2并未改变
    5 console.writeline("str1 is {0};str2 is {1}",str1,str2); 

      原因:运算符重载,这里重载了“=”(赋值)运算符。

    转义字符、@的使用。

     

    2016年1月7日23:09:36

     

     

  • 相关阅读:
    提高程序开发效率的文章
    动网代码备忘录
    asp.net 优化ASP.NET应用程序性能研究与探讨
    如何提高写程序的效率与减少 bug 的错误率
    .NET之默认依赖注入
    linux挂载windows共享文件夹
    如何修改数据库时区
    Oracle 数据库11g新特性之高效 PL/SQL 编码
    Oracle Data Guard 理论知识
    (转)关于PL/SQL Developer中对存储过程add debug information
  • 原文地址:https://www.cnblogs.com/forevertime/p/5111656.html
Copyright © 2011-2022 走看看