黑马程序员学习笔记----自定义泛型装箱及拆箱path类:foreach:

本文详细介绍了C#中的泛型概念及其应用,包括泛型类、泛型方法和泛型接口等,并解释了如何使用泛型约束来提高代码的安全性和灵活性。此外,还介绍了.NET Framework中的文件操作API,如Path类和Directory类的方法,帮助开发者更好地理解和运用这些基础技术。

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

自定义泛型:
  目的是为了代码重用<算法重用>。
  list<T> mylist=new list<T>();
T:type parameters T实际上就是占位符。可以说是类型参数
在net2.0的时候才开始引入。
  动手写泛型类。泛型方法。。写一个自己的list
  泛型接口
实现泛型接有两种方式
封闭类型  class myclass:itest<string>
开放类型  class myclass<t>:itest<t>
  泛型方法
public void sayHi<T>(T msg){}
类本身不是泛型的。只有调用的时候要指定一下。
  泛型约束:
public class person<t,t1,c,tk,tv>where t1:struct
where t1:sturct 表示约速束类型t1是值类型
where t:class 表示约束t必须是引用类型
where c:new();表示要无参数的构造方法
[要求:构造函数不能是私有的。类型不能是抽象的。]
where tk:car  表示约束了TK类型。必须是car类型或者是car类型的子类
where tu:t   表示约束tu必须是t的子类.

装箱及拆箱: box.unbox
装箱:将值类型转换为引用类型的过程
拆箱:将引用类型转换为值类型的过程
值类型跟引用类型的关系。。
由于字符串类型与int类型在内存上根本不存在交集。根本无法发生类型转换。而object与int 则可以转换。因为任何类都是继承自object
注意:
 装箱的时候。使用什么类型来装箱。拆箱的时候也应该用对应的类型的拆箱
由于int32是结构。结构是值类型。
由于int32还实现了icmparable 接口但接口是引用类型

使用了泛型集合后省去了装箱与拆箱的
操作。性能大大提升了。
使用arraylist。每次增加一个数字都会发生装箱与拆箱。性能比较低。

foreach:
为什么有些类可以使用foreach遍历?
任何类型只要想使用foreacg来循环遍历。就必须在当前类型中实现ienumerable接口来创建getenumerable()方法,通过这个方法就可以得到一个枚举器。。
getenumerable()方法的作用不是用来遍历的。而用来获取一个对象。这个对象才是用来遍历的。返回值是enuumerator

文件操作:
 path类:
 类中的方法基本是对字符串的操作。  与实际文本没有关系.
string GetDirectoryName(string path) (*)
得到文件的路径名。Path.GetDirectoryName(@"c:\temp\a.jpg")
string GetExtension(string path) 得到文件的扩展名
string GetFileName(string path) 得到文件路径的文件名部分
string GetFileNameWithoutExtension(string path) 得到去除扩展名的文件名
string GetFullPath(string path) 得到文件的全路径。可以根据相对路径获得绝对路径。
string GetTempFileName()  得到一个唯一的临时文件名(*)
string GetTempPath() 得到临时文件夹的路径(*)
direatory静态类:
  主要是对文件的操作。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值