当前位置:编程学习 > C#/ASP.NET >>

c#初识

1.NET Framework 包括了三大部分:第一个部分是Common Language Runtime(CLR,所有.NET 程序语言公用的执行时期组件),第二部分是共享对象类别库(提供所有.NET 程序语言所需要的基本对象),第三个部分是重新以组件的方式写成的ASP.NET(旧版本则是以asp.dll提供ASP 网页所需要的对象)。 
2.c#的数据类型可以分为数值和非数值两大类,数值又可以分为整型和非整型,非数值又包括字符类型和字符串类型。
3.变量的命名原则必须以字母,_或者@符号开头,不能以数字开头,变量名不能与C#中的关键字重复,而且大小写是敏感的
4.const 数据类型 常量名 = 常量值 常量在定义时赋值,其他地方不允许赋值。常用于程序中一些不可改变的变量的修饰。
5.枚举的好处在于限定了变量值的取值范围
//定义一个枚举类型
     enum  sex:int
 {
  男 = 0,
   女 = 1
 }
    //申明一个枚举变量
     enum  UserSex;
     UserSex = sex.男;
     如果我们要获取男所对应的保存值,则可以使用
     (int)UserSex
6.访问修饰符  struct  结构名
{
  访问修饰符 数据类型  结构成员; 
}
使用结构的好处在于可以将一组相互关联的变量存储为一组,通过变量名.成员名来访问,避免了变量之间的混淆
其实  结构可以看成是一个轻量级的类
7.我们可以在申明数组后,通过数组下标一个一个的给数组中的数据赋值 如
 int[] age = new int[10];
 age[0] = 10,age[1] = 20
    当然我们也可以在申明的时候直接赋值
      int[] age = new int[10]{1,2,3,4,5,6,7,8,9,10}
   
     或者
      int[] age = new int[]{1,2,3,4,5,6,7,8,9,10}
      在最后一种方法中,我们没有指定数组的长度,系统会根据我们提供的数据来自动判断数组长度。
      除此以外,还有一种定义数组的语法
      int[] age = {1,2,3}
8.[访问修饰符] [static]  返回值类型   方法名(参数列表)
    {
 方法体;
     }
方法名一般使用pascal命名法。
方法的重载: 即方法名相同,参数类型或者参数个数不同,返回值的类型不同并不能构成方法的重载。
9.out  在参数前加一个out修饰符,用于定义一个输出参数,方法在退出前必须对这个参数赋值
          out相对于return的好处在于,可以通过out修饰符让一个方法返回多个值,而不是return的单个
          out修饰的藏书在使用前可以不用初始化。
     ref   在参数前加一个ref修饰符,用于定义一个引用参数,指示传递给方法的是一个引用类型,这和
值传递不同,对引用类型参数的操作会影响实参。
           如public static void methodA ()
 {
  int a = 5;
  methodB(ref a);
 }
 public static void methodB (ref int number)
 {
  
 }
 methodA调用methodB方法,并将a变量作为一个引用传递给了methodB,那么methodB方法体中队参
数的任何修改都会影响到methodA中变量a的值
        注意 如果在方法的参数定义中使用了out和ref修饰符,那么调用者在调用方法时,在相应的参数
位置前也要指定修饰符
        params修饰符  支持参数数组,把可变数量的参数作为一个逻辑参数传递给方法。可以理解为这个
修饰符是自动让参数存储在一个不定长的列表里,我们在调用方法时,传递几个参数,编译器自动将这些参
数组装成一个数组,                     
                      console.writeline()方法中就使用了这个参数修饰符
         注意,如果方法的参数列表中使用了这个修饰符,那么这个参数必须放在参数列表中的最后一个。
10.面向对象概念
   三个特性 : 封装,继承,多态
   类 : 类是具有某些共同特征的事物的抽象表示
   对象  :类的实例,即抽象事物的具体化。
   方法: 类能够执行的动作
   字段 :类的状态,是指类的一组相关变量。
11.成员访问级别
   类的字段、属性和方法都叫做类的成员,他们有自己的访问级别,这用来控制类怎样被访问,访问级别
有下列几种
   public  任何地方都可以访问
 
   private  只有定义成员的类可以访问
   protected  只有定义他们的类和子类可以访问
   internal   由当前程序集访问
   类型成员的默认修饰符为private 而类的默认修饰符为internal
12.字段与属性
    为了保护对象的私有数据,字段的访问修饰符为private,那么就只有定义它的类才可以操作这个字段
,如果其他类需要操作这个字段,该怎么办么,这就需要属性了
    属性就是对字段的一种封装,用来保护字段的数据。并且可以对赋给字段的值进行检查,过滤不符合规
范的值
    属性的定义语法
     访问修饰符  数据类型  属性名
 {
  get{ return  字段名;}
  set{ 字段名= value ;}
 }
      从语法上可以看出,属性可以看成一个拥有两个子方法的方法,只不过在定义方法时需要()来定义参数,而属性不需要。
      通过对属性内部get set方法的访问控制,我们还可以设置只读属性,只写属性。默认情况下,get
set方法的修饰符是继承与属性的访问修饰符
      注意  属性并不存储任何数据,他是通过对字段的访问来达到存数数据和读取数据的目的。故一般情
况下,属性都会和一个字段有个映射关系。所有的数据都是存储在字段中的。
      自动属性:当属性内的get和set方法不包含任何检查逻辑,指示简单的给字段赋值和取值,那么可以
使用自动属性来简化代码
  访问修饰符  数据类型  属性名
 {
  get;
   set;
 }
 使用自动属性时要注意,不能设置只读或只写属性。
13.java应该说调用,而不是重写
* 类一定有构造器
* 构造器不能继承!
* 子类构造器中, 一定调用父类构造器。
*子类构造器 默认调用父类无参数构造器!
*如果父类没有无参数构造器,就必须在子类中明确指定调用
 父类的有参数构造器!
构造函数是类的一个特殊的方法,没有返回值,连void都不用写,在我们使用new关键字来分配对象时
会自动调用。它的作用在于实例化一个类的时候来给对象的各个字段赋初始值。
每个c#类在定义时会有一个默认的无参的构造函数,这个构造函数会对所有字段都赋予一个对应数据类型的默认值。
14.继承的作用在于代码的重用,子类可以除了可以访问定义在基类中可访问的成员外,还可以额外定义自
己特有的成员。如果我们在定义类的时候没有指定父类,那就以为着这个类派生自Object类,Object类是所
有类的基类。
一个基类可以有多个子类,但是一个类只能有一个父类,C#并不支持多重继承,c#通过接口的概念来实现相似的功能
继承中的几个关键字
   this:表示当前对象即自己
   base:表示自己的父类,可以通过base关键字来访问父类中的成员。
   sealed  : 这个关键字指示类不能被继承,即不能派生出其他的子类。c#中的结构就是隐式使用了这个
关键字。
   virtual: (虚方法)使用这个关键字来修饰方法,表示子类可以通过重写这个方法的实现逻辑,这样
就可以实现同一个父类方法在多个子类中的实现逻辑不相同,
   override:  子类在重写父类中用virtual修饰的方法时,必须使用override关键字,指示这个方法时重
补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,