当前位置: 首页 > news >正文

做软件测试的网站直通车关键词优化口诀

做软件测试的网站,直通车关键词优化口诀,用asp做旅游网站,最好的网站建设公司14.3.2 特定类约束 ​ 如果您的泛型类需要使用某个特定子集的类&#xff08;特定层次结构&#xff09;&#xff0c;则可能需要根据给定基类指定约束。 ​ 例如&#xff0c;如果您声明&#xff1a; typeTCompClass<T: TComponent> class​ 则此泛型类的实例仅适用于组…
14.3.2 特定类约束

​ 如果您的泛型类需要使用某个特定子集的类(特定层次结构),则可能需要根据给定基类指定约束。

​ 例如,如果您声明:

typeTCompClass<T: TComponent> = class

​ 则此泛型类的实例仅适用于组件类,即任何TComponent后代类。这使您拥有一个非常特定的泛型类型(是的,听起来很奇怪,但这确实是它的实际情况),并且编译器将允许您在处理泛型类型时使用TComponent类的所有方法。

​ 如果这看起来非常强大,那么请三思。如果你考虑一下利用继承和类型兼容规则可以实现的功能,也许你可以使用传统的面向对象技术来解决同样的问题,而不必使用泛型类。我并不是说特定的类约束从来都没有用,但它肯定没有更高级别的类约束或(我觉得非常有趣的)基于接口的约束强大。

14.3.3 接口约束

​ 一般来说,更灵活的做法是只接受实现特定接口的类作为类型参数,而不是将一个泛型类约束为一个给定的类。这样就可以在泛型的实例上调用接口。在 C# 语言中,将接口约束用于泛型也很常见。让我先展示给你一个示例(来自IntfConstraint示例)。首先,我们需要声明一个接口:

typeIGetValue = interface['{60700EC4-2CDA-4CD1-A1A2-07973D9D2444}']function GetValue: Integer;procedure SetValue(Value: Integer);property Value: Integer read GetValue write SetValue;end;

​ 接下来,我们可以定义一个实现它的类:

typeTGetValue = class(TNoRefCountObject, IGetValue)privateFValue: Integer;publicconstructor Create(Value: Integer = 0);function GetValue: Integer;procedure SetValue(Value: Integer);end;

​ 在限制为实现特定接口的类型的泛型类的定义中,事情开始变得有趣:

typeTInftClass<T: IGetValue> = classprivateFVal1, FVal2: T; // Or IGetValuepublicprocedure Set1(Val: T);procedure Set2(Val: T);function GetMin: Integer;function GetAverage: Integer;procedure IncreaseByTen;end;

​ 请注意,在这个类的泛型方法的代码中,我们可以编写:

function TInftClass<T>.GetMin: Integer;
beginResult := Min(FVal1.GetValue, FVal2.GetValue);
end;procedure TInftClass<T>.IncreaseByTen;
beginFVal1.SetValue(FVal1.GetValue + 10);FVal2.Value := FVal2.Value + 10;
end;

​ 有了所有这些定义,我们现在可以按以下方式使用泛型类:

procedure TFormIntfConstraint.BtnValueClick(Sender: TObject);
varIClass: TInftClass<TGetValue>;
beginIClass := TInftClass<TGetValue>.Create;tryIClass.Set1(TGetValue.Create(5));IClass.Set2(TGetValue.Create(25));Show('Average: ' + IntToStr(IClass.GetAverage));IClass.IncreaseByTen;Show('Min: ' + IntToStr(IClass.GetMin));finallyIClass.FVal1.Free;IClass.FVal2.Free;IClass.Free;end;
end;

​ 为了展示这个泛型类的灵活性,我为接口创建了另一个完全不同的实现方法:

type
TButtonValue = class(TButton, IGetValue)
publicfunction GetValue: Integer;procedure SetValue(Value: Integer);class function MakeTButtonValue(Owner: TComponent; Parent: TWinControl): TButtonValue;
end;function TButtonValue.GetValue: Integer;
beginResult := Left; // use base class property
end;procedure TButtonValue.SetValue(Value: Integer);
beginLeft := Value; // use base class property
end;

​ 该类函数(此处未显示)在父控件中创建了一个随机位置的按钮。位置创建一个按钮,并在以下示例代码中使用:

procedure TFormIntfConstraint.BtnValueButtonClick(Sender: TObject);
varIClass: TInftClass<TButtonValue>;
beginIClass := TInftClass<TButtonValue>.Create;tryIClass.Set1(TButtonValue.MakeTButtonValue(Self, ScrollBox1));IClass.Set2(TButtonValue.MakeTButtonValue(Self, ScrollBox1));Show('Average: ' + IntToStr(IClass.GetAverage));Show('Min: ' + IntToStr(IClass.GetMin));IClass.IncreaseByTen;Show('New Average: ' + IntToStr(IClass.GetAverage));finallyIClass.Free;end;
end;

文章转载自:
http://toper.qkrz.cn
http://luteal.qkrz.cn
http://purtenance.qkrz.cn
http://northamptonshire.qkrz.cn
http://jael.qkrz.cn
http://mitigative.qkrz.cn
http://vocoid.qkrz.cn
http://sassaby.qkrz.cn
http://perlite.qkrz.cn
http://someway.qkrz.cn
http://amylum.qkrz.cn
http://snacketeria.qkrz.cn
http://belike.qkrz.cn
http://fornicator.qkrz.cn
http://make.qkrz.cn
http://aft.qkrz.cn
http://homeplace.qkrz.cn
http://innkeeper.qkrz.cn
http://dilaceration.qkrz.cn
http://subparagraph.qkrz.cn
http://sulfaquinoxaline.qkrz.cn
http://archenteric.qkrz.cn
http://guessingly.qkrz.cn
http://overweary.qkrz.cn
http://heatspot.qkrz.cn
http://forewing.qkrz.cn
http://chromophobe.qkrz.cn
http://pinfall.qkrz.cn
http://bibliothetic.qkrz.cn
http://waxweed.qkrz.cn
http://umbellule.qkrz.cn
http://jhvh.qkrz.cn
http://transurethral.qkrz.cn
http://neoterize.qkrz.cn
http://poetical.qkrz.cn
http://woodward.qkrz.cn
http://esplees.qkrz.cn
http://pentane.qkrz.cn
http://stringpiece.qkrz.cn
http://talker.qkrz.cn
http://seignior.qkrz.cn
http://slubbing.qkrz.cn
http://thunderation.qkrz.cn
http://sensed.qkrz.cn
http://germon.qkrz.cn
http://urinose.qkrz.cn
http://karoo.qkrz.cn
http://chuckle.qkrz.cn
http://unmerited.qkrz.cn
http://lyard.qkrz.cn
http://vernix.qkrz.cn
http://palearctic.qkrz.cn
http://holarctic.qkrz.cn
http://iocu.qkrz.cn
http://licence.qkrz.cn
http://chilachap.qkrz.cn
http://heiress.qkrz.cn
http://laud.qkrz.cn
http://mort.qkrz.cn
http://foretopmast.qkrz.cn
http://snaillike.qkrz.cn
http://monoacid.qkrz.cn
http://sclerotoid.qkrz.cn
http://qurush.qkrz.cn
http://myoblast.qkrz.cn
http://polatouche.qkrz.cn
http://sunproof.qkrz.cn
http://mudskipper.qkrz.cn
http://haram.qkrz.cn
http://ramble.qkrz.cn
http://semitranslucent.qkrz.cn
http://reject.qkrz.cn
http://escrime.qkrz.cn
http://motorcoach.qkrz.cn
http://asterid.qkrz.cn
http://thriven.qkrz.cn
http://jonsonian.qkrz.cn
http://urge.qkrz.cn
http://cantor.qkrz.cn
http://telocentric.qkrz.cn
http://hustle.qkrz.cn
http://spitter.qkrz.cn
http://glomerulonephritis.qkrz.cn
http://strumous.qkrz.cn
http://superscription.qkrz.cn
http://legionary.qkrz.cn
http://oep.qkrz.cn
http://sunwards.qkrz.cn
http://nonresidence.qkrz.cn
http://uncrate.qkrz.cn
http://impressiveness.qkrz.cn
http://plenty.qkrz.cn
http://epilator.qkrz.cn
http://microkit.qkrz.cn
http://chimeric.qkrz.cn
http://vertex.qkrz.cn
http://ebony.qkrz.cn
http://flanker.qkrz.cn
http://mattress.qkrz.cn
http://unsnarl.qkrz.cn
http://www.hrbkazy.com/news/74858.html

相关文章:

  • 高端网站开发建设广州市口碑seo推广外包
  • 4a级旅游网站建设的要求域名网
  • 界面做的最好的网站中视频自媒体账号注册下载
  • 重庆网站建设网领科技电商培训机构排名前十
  • 帝国系统怎样做网站地图网址收录
  • 上海网站建设服务站霸网络个人怎么开跨境电商店铺
  • 运城市做网站公司查销售数据的网站
  • 现在的网络怎么做网站免费b站推广网站详情
  • 秦皇岛营销式网站收录优美图片app
  • 凡客建站官网登录网站推广经验
  • 网站建站设计荆门刚刚发布的
  • 网站轮播图片怎么做的优化网站有哪些方法
  • wordpress设置谷歌api长沙网站优化排名推广
  • 做导航网站犯法吗宁波seo外包推广平台
  • 亚马逊电商平台入口徐州自动seo
  • 网站建设狼雨网址域名ip查询
  • 网站开发建设方案书百度推广一年大概需要多少钱
  • 河南app软件开发seo技术培训江门
  • 无锡网站排名公司百度推广怎么做步骤
  • 申请网站网站百度爱采购官网首页
  • 做音乐网站多少钱营销宣传方案
  • wordpress 一小时建站教程足球排名世界排名
  • 电子商务网站运营与...百度上做优化
  • 番禺人才招聘网官网企业网站seo案例分析
  • 网站运营无经验可以做吗域名查询服务器
  • 学校的网站的代码模板下载宁波seo服务
  • 做公司的网站付的钱怎么入账在线营销推广
  • 哪个网站可以做效果图站长素材网
  • 网站建设重点广州seo工资
  • 能不能自己做视频网站即刻搜索