学院培训c#第一天

原创 2015年07月09日 09:36:56

 

1. 配置数据库环境。。 windows 2008 server  用户名:sa 密码:123456

2.学习c#基础内容

3.装了一个ftp工具。。 这个也写上吧。。 嘿嘿。

4. 理解 泛型与装箱的区别。  委托和事件 arrayList 装箱和拆箱  c#值类型和引用类型

委托感觉就像 函数指针

 

事件机制 感觉就是一种特殊的委托, 再加上一个事件判断的机制。 可以根据事件的不同做不同的操作

 

C#动态数组ArrayList介绍

ArrayList是一种动态数组,其容量可随着我们的需要自动进行扩充.

ArrayList位于System.Collections命名空间中,所以我们在使用时,需要导入此命名空间.

下面,我们还是在Student类的基础上利用ArrayList操作,从而了解ArrayList的用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class Student   
{   
              public Student(){}   
    
              public Student(String name,int age,String hobby)   
              {   
                           this.Name = name;   
                           this.Age = age;   
                           this.Hobby = hobby;   
              }   
    
              private String name;   
              public String Name   
             {   
                     get{return name;}   
                     set{name = value;}   
             }   
    
             private int age;   
             public int Age   
            {   
                     get{return age;}   
                     set{age = value;}   
            }   
    
            private String hobby;   
            public String Hobby   
           {   
                     get{return hobby;}   
                     set{hobby = value;}   
           }   
    
            public void say()   
            {   
                     Console.WriteLine("大家好,我是'{0}',今年{1}岁,我喜欢'{2}'",   
                      this.Name,this.Age,this.Hobby);   
            }   
}

编写测试类,了解ArrayList的方法


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
using System.Collections;   
    
public class TestStudent   
{   
              public static void main(String args [])   
             {   
                         //建立ArrayList对象   
           ArrayList students = new ArrayList();   
    
                         //实例化几个Student类对象   
           Student rose = new Student("rose",25,"reading");   
                          Student jack = new Student("jack",28,"singing");   
                          Student mimi = new Student("mimi",26,"dancing");   
    
                          //利用ArrayList类的add()方法添加元素   
           students.add(rose);   
                          students.add(jack);   
                          students.add(mimi);   
    
                          //利用ArrayList的Count属性查看该集合中的元素数量   
           int number = students.Count;   
                          Console.WriteLine("共有元素" + number + "个");   
    
                          //读取单个元素,因为存入ArrayList中的元素会变为Object类型,   
                         //所以,在读取时间,   
           Student stu = students[0] as Student;   
                          stu.say();   
    
                          //遍历元素 -- 通过索引   
           for(int i = 0;i < students.Count;i ++)   
                        {   
                               Student a = students[i] as Student;   
                               a.say();   
                        }   
                        //利用foreach循环   
          foreach(Object o in students)   
                       {   
                               Student b = o as Student;   
                               b.say();   
                      }   
    
                      //删除元素  通过索引删除   
         students.removeAt(0);   
                      //删除元素,    通过对象名   
         students.remove(jack);   
                     //清空元素   
         students.Clear();   
    
                      //我们知道,ArrayList的容量会随着我们的需要自动按照一定规律   
         //进行填充,当我们确定不再添加元素时,我们要释放多余的空间   
         //这就用到了Capacity属性和TrimtoSize()方法   
         //利用Capacity属性可以查看当前集合的容量      
         //利用TrimtoSize()方法可以释放多余的空间   
              
    
         //查看当前容量   
         int number = students.Capacity;   
                    //去除多余的容量   
        students.TrimtoSize();                        
             }   
}

上面的那个ArrayList 实际上就是一个动态数组。 链表类。 存放Object之类

 

 

C#的值类型包括:结构体(数值类型,bool型,用户定义的结构体),枚举,可空类型。

C#的引用类型包括:数组,用户定义的类、接口、委托,object,字符串。

数组的元素,不管是引用类型还是值类型,都存储在托管堆上。

引用类型在栈中存储一个引用,其实际的存储位置位于托管堆。为了方便,本文简称引用类型部署在托管推上。

值类型总是分配在它声明的地方:作为字段时,跟随其所属的变量(实例)存储;作为局部变量时,存储在栈上。

值类型在内存管理方面具有更好的效率,并且不支持多态,适合用作存储数据的载体;引用类型支持多态,适合用于定义应用程序的行为。

 

疑惑来源于 值类型都是继承自object.  而object属于引用类型

 

值类型继承自System.ValueType类
ValueType 用更合适的值类型实现重写 Object 中的虚搜索方法。请参见从 ValueType 继承的 Enum。

数据类型分隔为值类型和引用类型。值类型要么是堆栈分配的,要么是在结构中以内联方式分配的。引用类型是堆分配的。引用类型和值类型都是从最终的基类 Object 派生出来的。当值类型需要充当对象时,就在堆上分配一个包装(该包装能使值类型看上去像引用对象一样),并且将该值类型的值复制给它。该包装被加上标记,以便系统知道它包含一个值类型。这个进程称为装箱,其反向进程称为取消装箱。装箱和取消装箱能够使任何类型像对象一样进行处理。

 

 

 

 

老师的博客: http://www.cnblogs.com/yieryi/p/4626278.html

 

 

 

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

需求分析师培训第一天

  • 2014-08-05 10:44
  • 3.82MB
  • 下载

hibernate培训第一天

  • 2008-02-14 17:07
  • 557KB
  • 下载

卡卡IT学院模式:轻培训业态重线下资源整合

【导读】     市场上充斥着各种的java培训机构、IOS培训机构、android培训培训。     www.onlykaka.com卡卡IT模式:单位立店;精英教学;人民战争。四大重器:资深/...

Sybase_IQ培训教程第一天

  • 2014-12-31 11:52
  • 2.10MB
  • 下载

恳请张孝祥老师要求唐骏老师创建软件培训学院的一封信

我是一个计算机菜鸟,才找到工作几周.几天前看到"恳请李开复老师创建软件培训学院的一封信"当时就觉得很有戏.事后想想却觉不妥.于是发博说说自己的想法.我大一自学的java入门书籍就是看张孝祥老师的入的门...

CS3000工程师培训第一天

  • 2011-08-14 21:26
  • 2.07MB
  • 下载

恳请李开复老师创建软件培训学院的一封信

尊敬的开复老师,   您好!   我叫张孝祥,是传智播客公司的发起者和主要创建者之一,我个人在软件培训领域、在国内30岁左右的java程序员和普通大学java教师中都具有较高的知名度和影响力,我几乎没...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)