泛型(一)

泛型并不是一个全新的结构,其他语言中有类似的概念。例如,C++模板就与泛型相似。但是,
c++模板和.NET泛型之间有一个很大的区别。对于C++模板只在用特定的类型实例化模板时,需要模
板的源代码。相反,泛型不仅是C#语言的一种结构,而且是CLR定义的。所以,即使泛型类是在唧
中定义的,也可以在Ⅵsual Basic中用一个特定的类型实例化该泛型。
创建链表的泛型版本。泛型类的定义与一般类类似,只是要使用泛型类型声明。之后,泛
型类型就可以在类中用作一个字段成员,或者方法的参数类型。LinkedListNode类用一个泛型类型
T声明。属性Value的类型是T,而不是object。构造函数也变为可以接受T类型的对象。也可以返
回和设置泛型类型,所以属性Next和Prev的类型是LinkedListNode<T>。
public class LinkedListNode(T>
{
pub1ic LinkedListNode(T value)
{
this.Value = value;
}
public T Value {get;private set; }
pub1ic LinkedListNode(T) Next { get;internal set; )
public LinkedListNode<T) PreV { get; internal set; )
}
下面的代码把LinkedList类也改为泛型类。LinkedList<T>包含LinkedListNode<T>元素。
LinkedList中的类型T定义了类型T的属性first和last。AddLast()方法现在接受类型T的参数,并
实例化LinkedListNode<T>的对象。
除了IEnunmble接口,还有一个泛型版本IEnunmble<T>。IEnumeralbe<T>派生自IEnumerable ,添加了返回IEnunmtor<T>,的GetEnmnmtor()方法,LinkedList<T>实现泛型接口IEnunemble<T>。
public Class LinkedList<T> : IEnumerable<T>
{
pub1iC LinkedListNode<T> First { get; private set;}
public LinkedListNode<T> Last {get; private set;}
pub1ic LinkedListNode<T> AddLast(T node)
{
var newNode = new LinkedListNode(node);
if (First == null)
{
First = newNode'
newNode.Prev = Last;
Last = First;
}
else
{
LinkListNode previous = Last;
Last.Next = newNode;
Last = newNode;
Last.Prev = previous;
}
return newNode;
public IEnumerator<T> GetEnumerator()
{
LinkedListNode(T> Current = First;
while (current != null )
{
yield return current.Value;
current = current.Next;
}
}
IEnumerator IEnumerab1e.GetEnumerator()
{
return GetEnumerator();
}
}
使用泛型类LinkedList<T>,可以用int类型实例化它,且无需装箱操作。如果不使用AddLast()方法传递int,就会出现一个编译错误。
泛型类的功能
默认值
不能把null赋予泛型类型。原因是泛型类型也可以实例化为值类型,而null只能用
于引用类型。为了解决这个问题,可以使用default关键字。通过default关键字,将null赋予引用类型,将0赋予值类型。
约束


继承
泛型类型可以实现泛型接口,也可以派生自一个类。泛型类可以派生自泛型基类
public class Base<T>
{}
public class Derived<T> : Base<T>
{}
其要求是必须重复的泛型类型,或者必须指定基类的类型,如下例所示:
public class Base<T>
{}
pub1ic class Derived<T> : Base<string>
{}

多源动态最优潮流的分布鲁棒优化方法(IEEE118节点)(Matlab代码实现)内容概要:本文介绍了基于Matlab代码实现的多源动态最优潮流的分布鲁棒优化方法,适用于IEEE118节点电力系统。该方法结合两阶段鲁棒模与确定性模,旨在应对电力系统中多源不确定性(如可再生能源出力波动、负荷变化等),提升系统运行的安全性与经济性。文档还列举了大量相关的电力系统优化研究案例,涵盖微电网调度、电动汽车集群并网、需求响应、配电网重构等多个方向,并提供了YALMIP等工具包的网盘下载链接,支持科研复现与进步开发。整体内容聚焦于电力系统建模、优化算法应用及鲁棒性分析。; 适合人群:具备电力系统基础知识和Matlab编程能力的研究生、科研人员及从事能源系统优化的工程技术人员;熟悉优化建模(如鲁棒优化、分布鲁棒优化)者更佳。; 使用场景及目标:①开展电力系统动态最优潮流研究,特别是含高比例可再生能源的场景;②学习和复现分布鲁棒优化在IEEE118等标准测试系统上的应用;③进行科研项目开发、论文复现或算法比较实验;④获取相关Matlab代码资源与仿真工具支持。; 阅读建议:建议按文档结构逐步浏览,重点关注模构建思路与代码实现逻辑,结合提供的网盘资源下载必要工具包(如YALMIP),并在Matlab环境中调试运行示例代码,以加深对分布鲁棒优化方法的理解与应用能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

miffy-life

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值