搜索
简帛阁>技术文章>黑马程序员_学习日记1_C#基础

黑马程序员_学习日记1_C#基础

---------------------- Windows Phone 7手机开发、 .Net培训、期待与您交流! ----------------------

CSDN终于可以发帖了,把前几天的补上......

4月12日

今晚网速很慢,下黑马视频很卡,我下了一本《C#基础教程》的电子书来学习,做笔记如下:

一、IL(Microsoft中间语言)的五大特性:

1、实现给定接口的类,必须提供该接口的所有方法和属性。例如:

有个接口IUser ,其有age,sex,userName 属性,有setUname(),getAge()方法。有个

类,UserClass 继承自IUser。这时, UserClass 就必须实现IUser 的所有方法setUname(),getAge()和所有属性age,sex,userName。

2、值类型和引用类型的巨大差异:值类型变量直接保存其数据,而引用类型变量保存其数据地址。值类型一般存在堆栈中,引用类型一般存在托管堆中。

3、强数据类型:所有的变量都明确的被标定为某个特定的数据类型,IL不允许对模糊数据类型进行操作,在javascript中的var变量就是模糊类型数据。不过现在的.NET3.5中也加入了var。

4、使用异常来处理错误:try{}catch{}finally{}

5、属性的使用:用户定义的Attribute和其对应的数据类型或方法的元数据放在一起,这对于文档说明很有用,它们和反射技术一起使用,执行特定的任务。(什么意思?)

二、几个重要概念:

1、程序集:

程序集是包含编译好的、面向.Net Framework的代码的逻辑单元。程序集是完全自我描述性的,也是一个逻辑单元。程序集的一个重要特点是其包含的元数据描述了对应代码中定义的类型和方法。程序集也包含了自身的元数据。

程序集有私有程序集和共享程序集之分。

2、反射:

因为程序集存储了元数据,包括在程序集中定义的所有类型和方法,所以可以编程访问这些元数据,这种技术就称为反射。

3、命名空间:

命名空间是.NET避免冲突的一种方式。在实例化类时,我们采用命名空间.类名这样的方式来实例化。

 

关于面向过程的知识、面向对象的基本概念、类和方法的基本知识,我有所掌握,所以从构造函数开始学习。

三、构造函数

构造函数是和类名相同的类的一个方法。

1、如果没有显式的声明,在系统会在编译的时候,自动生成一个不带参数的,不执行任何动作的构造函数。但如果显式的声明了构造函数,系统就不会自动生成了。如果声明的构造函数是有参数的构造函数, 我们在实例化类的时候,就必须以该构造函数而实例化类。

例1:

public class Test

    {

        publicint num;

        publicTest(int i)

        {

            this.num= i + 5;

        }

        staticvoid Main()

        {

            //传递了一个参数“10”,如果用TestclassOne = new Test();就会报错,因为显式声明了一个带参数的构造方法

Test classOne = newTest(10);

            intx = classOne.num;

            Console.WriteLine(x);

            Console.ReadKey();

        }

}

     2、静态构造函数:一般,在类中有一些静态字段或者属性,需要在第一次使用类之前从外部数据源初始化这些静态字段和属性,这时我们就采用静态构造函数的方式来解决。(不懂这句话是什么意思?静态构造函数到底是干嘛用的?)

    无参的实例构造函数可以和静态构造函数在类中共存。因为静态构造函数是在加载类

的时候执行的,而实例构造函数是在创建实例时执行的,两者并不冲突。

例2:

public class Test

    {

        //静态构造函数

static Test()

        {

            Console.WriteLine("www.gosoa.com.cn");

        }

        //无参的实例构造函数

        publicTest()

        {

        }

        staticvoid Main()

        {

            TestoneClass = new Test();

            Console.ReadKey();

        }

}

该程序运行的结果是 www.gosoa.com.cn 在类的对象创建的时候,静态构造函数已经运行了。

3、构造函数初始化器

public class Test

    {

        privatestring domain;

        privatestring url;

        publicTest(string dom, stringurl)

        {

            this.domain= dom;

            this.url= url;

        }

        //构造函数初始化器(我问黑马审核群里的战友,他们很多也没听说过)

        publicTest(string dom)

            : this(dom, "www.gosoa.com.cn")

        {

        }

        staticvoid Main()

        {

            TestclassOne = new Test("gosoa");

            Console.WriteLine(classOne.url);

            Console.ReadKey();

        }

}

4、只读字段(readonly):只读字段比常量灵活的多,常量(const)字段必须在声明之初就初始化,但readonly字段甚至可以进行一些运算再确定其值。

注意,可以在构造函数中对只读字段赋值,但不能在其他地方赋值。(不太懂,下面是黑马审核群郭同学的解释,让我茅塞顿开:比如说,你现在要做一个RMB和美元之间换算的例子,但一开始你不知道比例是多少。这时候,你就可以在类的构造函数中使用一个只读字段来读取这个比例,然而在类的外部,这个比例只能使用不能更改)

 

 

---------------------- Windows Phone 7手机开发、 .Net培训、期待与您交流! ----------------------详细请查看: http://net.itheima.com/
WindowsPhone7手机开发、Net培训、期待与您交流!CSDN终于可以发帖了,把前几天的补上4月12日今晚网速很慢,下黑马视频很卡,我下了一本《C基础教程》的电子书来学习,做笔记如下:一、IL
indowsPhone7手机开发、Net培训、期待与您交流!什么是泛型?泛型是NET20引入的一个概念。泛型不仅是C语言的一部分,而且与程序集中的IL代码紧密继承。有了泛型我们就可以创建于独立于被包
android培训java培训期待与您交流!下午学习了高新技术部分的内容,感觉知识点又多又细,可能是之前没有接触过这些东西,在看视频的时候理解起来有点吃力,所以就把所学的东西大概地整理了一下,顺便复习
C基本知识点一、C与NET的关系NET的核心是CLR(公共语言运行时)。在CLR中运行的代码,我们称为“托管代码”。我们写的代码在运行之前,会经过两个编译阶段:1、把源代码编译为IL(Microso
JavaScript和Dom的关系好比C和NETFramework的关系。内容:使用JavaScript操作Dom进行DHTML开发。Alert都不是JavaScript中定义的东西,它是Dom方法
黑马程序员学习日记1http://wwwitheimacomtargetblank>Java培训、Android培训、iOS培训、Net培训、期待与您交流!黑马程序员学习日记1一标识符*由26个英文字
黑马程序员JAVA学习笔记黑马程序员_java编程基础2android培训、java培训、期待与您交流!JAVA的概述:DOC常用命令:dir列出当前目录下的文件以及文件夹;md创建目录;rd删除目
Java培训、Android培训、iOS培训、Net培训、期待与您交流!一:关键字,常量,变量,运算符关键字:被java赋予特殊含义的单词特点:都是英文小写标识符:由26个英文字母,数字0~9,符:$
android培训、java培训、期待与您交流!从毕业做外包几年了,那时候没好好把握机会学点技术,过了好多年回来又想学,看了最基础的视频又好像太简单,看了基础加强的又看不是很懂,非常纠结,还得继续坚持
android培训、java培训、期待与您交流!静态导入importstatic静态导入(importstatic)是java15中的新特性之一,为了书写的简便,可以通过静态导入的方式导入某一个类中的