初识面向对象的基本内容

本文深入探讨.NET框架的功能,包括提供面向对象编程环境、Web应用支持和云计算实现。介绍了CLR作为.NET应用程序运行时环境的角色。接着,文章详细讲解了C#的数据类型,如值传递和引用传递,并对比了非泛型与泛型集合,如ArrayList和Hashtable与List和Dictionary,强调泛型集合的类型安全和性能优势。最后,文章讨论了类的方法,包括构造函数的类型和重载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一章:深入.NET框架
一:.NET的功能

1.它提供了一个面向对象的编程环境,完全支持面向对象编程

2.对Web应用,Web服务的强大支持

3.实现SOA,支持云计算

4.支持构建.NET程序的炫彩外衣

二:.NET框架的组成
1. CLR(公共语言运行时)

作用:所有.NET应用程序运行时的环境

组成:CLS(公共语言规范)和CTS(通用类型系统)

CLS和CTS之间的作用

CLSCTS
一种最低语言标准解决不同语言数据类型不同问题
  1. FCL(框架类库)

    作用:提供了对于系统功能的调用,是建立.NET应用程序,组件和控件的基础

    核心框架及功能:

    核心框架功能
    system包含所有其他的命名空间
    system.Net支持对网络协议的编程
    system.Data提供了表示ADO.NET结构的类的访问
    system.Collections.Generic支持泛型操作
    system.Windows.,Forms可以用于Windows应用程序
    system.Drawing支持GDI+基本图形操作,如:验证码
    三:类图

作用:能够便于明白类的功能及类之间的关系

【注意】:在VS的通用类图中,字段属性放在方法的前面,变量类型和返回值放在冒号的后面,而私有成员前加一个“-”,共有成员前面加一个“+”。

第二章:C#的数据类型
  1. 值传递

    命名空间:System.ValueType

    内存区域:栈

    包括类型:基本数据类型(如:int,float),枚举,结构类型等

    【注意】

    结构类型的语法:
    访问修饰符 Struct  结构名
    {
    //结构体
    }
    
    特点:

    结构中可以有字段,也可以有方法。定义时,结构中的字段不能被赋值

    使用的注意方面:

    1.可以不用new,直接定义结构的对象即可

    2.声明结构的对象后,必须给结构中的所有成员赋值

    3.不能手写结构函数,结构里面有多少字段,定义的构造函数里面就有多少参数

  2. 引用传递

    命名空间:System.Object

    内存区域:堆

    包括类型:数组,类,接口等

3.参数传递
  1. 当不用ref修饰传递值类型参数时,参数在方法中的修改不会保留
  2. 当不用ref修饰,传递引用类型参数时,参数在方法中的修改会保留
  3. 当用ref修饰,传递值类型或引用类型参数时,参数在方法中的修改会保留
4.装箱与拆箱

装箱:把值类型转换为引用类型的过程

拆箱:把引用类型转换为值类型的过程

如:

int i=123;
object o=i;//装箱
int j=(int)o;//拆箱
三:集合(一组大小不固定的值)
1.非泛型集合(不限制数据类型,需要进行数据的转换)
A: Arraylist(类似于数组):

命名空间:System.Collections

属性:Count,主要是获取Arraylist中包含的元素数

方法:
方法作用
Add(object value)将对象添加到Arraylist的结尾处
RemoveAt(int index)删除Arraylist指定的索引处的元素
Remove(object value)时时彩Arraylist特定的对象
Clear()删除Arraylist中的所有元素
例式:
using System.Collections;
Arraylist arraylist=new Arraylist();//可以设置容量为0的Arraylist对象
Arraylist arraylist2=new Arraylist(5);//也可以设置容量为5的Arraylist对象
arraylist.Add("张三");//添加一个对象
SE se=new SE();//new一个SE的对象
se.name="李四";
arraylist.Add(se);//添加一个se对象
//for遍历
for(int i=0;i< arraylist.count;i++)
{
    SE eng=(SE) arraylist[i];//进行类型转换
    CW(eng.name);
}
//foreach遍历
foreach(object obj in arraylist)
{
    SE eng=(SE)obj;
    CW(eng.name);
}
 arraylist.Remove(se);//删除对象名为se的元素
arraylist.RemoveAt(0);//删除索引为0的元素
B:Hashtable(哈希表):

命名空间:System.Collections

属性:
属性作用
count获取在Hashtable中的元素个数
Keys获取在Hashtable中的键的集合
Values获取在Hashtable中的值的集合
方法:
方法作用
Add(object key,object value)将带有键和值的元素添加在Hashtable中
Remove(object key)从Hashtable中删除指定键的元素
Clear()从Hashtable中删除所有元素
例式:
using System.Collections;
Hashtable ht=new Hashtable();
SE se=new SE();//new一个SE的对象
se.name="李四";
ht.Add(se.name,se);//添加一个se对象,将姓名当作键
ht.Remove("李四");//按照键删除
//遍历Keys
foreach(object obj in ht.Keys)
{
    CW((string)obj);
}
//遍历Values
foreach(object obj in ht.Values)
{
    SE se =(SE)obj;
    CW(se.name);
}
//结构DictionaryEntry遍历
foreach(DictionaryEntry en in ht)
{
    CW(en.Key);
    CW(((SE)en.Value).name);
}
2.泛型集合(限制数据类型,不需要进行数据的转换)
A:List:【它的属性与方法都跟Arraylisty一样,但是List比起Arraylisty更保证了类型的安全性】

命名空间:System.Collections.Generic

语法:
List<T> list=new List<T>;//【T是指数据类型】
B:Dictionary:【它的属性与方法都跟Hashtable一样,但是Dictionary比起Hashtable更保证了类型的安全性】

命名空间:System.Collections.Generic

语法
Dictionary<K,V> 对象名=new Dictionary<K,V>();//K是键的数据类型,V是值的数据类型
3.泛型类
语法:
public class 类名<T> //T是类性参数,可以是类类型,也可以是基本类型
{
}

特点:

  1. 性能高

2.类型安全

3.实现代码的重用

第四章:深入类的方法
1.构造函数

作用:new对象的

特点:

1.方法名与类名一样

2.没有返回值

3.主要完成对象的参数化工作

分类:

A:无参构造函数

语法:

访问修饰符  类名()
{
//方法体    
}

注意】在一个类中,如果你没有手写构造函数,那么这个类中会有一个默认的隐式无参构造函数,但是如果你手写了构造函数,那么就不会有默认的构造函数。

B:有参构造函数

语法:

访问修饰符  类名(参数列表)
{
//方法体    
}
  1. 方法重载

作用:利于不通英语的弊端

特点:

1.方法名相同

2.同一个类中

3.方法参数类信息不同或参数个数不同

注意】不能以返回值类型,修饰符决定是否是重载。

3.例式
class SE
{
    public SE()//手写了构造函数
    {
        CW("hello");
    }
    
     public SE(string name)//重载
    {
        CW("hello,我是{0}",name);
    }
}

//在main方法中
SE se=new SE();//它会输出hello,调用了无参构造函数
SE se=new SE("张三");//它会输出hello,张三,调用了有参构造函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值