// ĠFIR _ IDENT ICAL Ċ // Ġ! LANGUAGE : Ġ+ For bid Using Extension PropertyType Parameter In Delegate Ċ Ċ class ĠDelegate < T Ġ: ĠAny > Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġv : ĠT ? Ġ= Ġnull ĊĠĠĠ Ġoperator Ġfun ĠgetValue ( this Ref : ĠAny ?, Ġkp : ĠAny ?): ĠT Ġ= Ġv !! ĊĠĠĠ Ġoperator Ġfun ĠsetValue ( this Ref : ĠAny ?, Ġkp : ĠAny ?, ĠnewValue : ĠT ) Ġ{ Ġv Ġ= ĠnewValue Ġ} Ċ } Ċ Ċ var Ġ< T Ġ: ĠAny > ĠList < T >. foo Ġ<! DE LEG ATE _ USE S _ EXTENSION _ PROPERTY _ TYPE _ PARAMETER !> by ĠDelegate < T >() <! > Ċ Ċ class ĠWrapper < T >( val Ġv : ĠT ? Ġ= Ġnull ) Ċ Ċ operator Ġfun Ġ< T > ĠWrapper < T >. getValue ( this Ref : ĠAny ?, Ġkp : ĠAny ?): ĠT Ġ= Ġv !! Ċ Ċ val Ġ< T Ġ: ĠAny > ĠList < T >. bar Ġ<! DE LEG ATE _ USE S _ EXTENSION _ PROPERTY _ TYPE _ PARAMETER !> by ĠWrapper < T >() <! > Ċ Ċ fun Ġuse String ( s : ĠString ) Ġ{} Ċ Ċ fun Ġmain ( list Int : ĠList < Int >, Ġlist Str : ĠList < String >) Ġ{ ĊĠĠĠ Ġlist Int . foo Ġ= Ġ 4 2 ĊĠĠĠ Ġuse String ( list Str . foo ) Ġ// ĠC CE Ċ } Ċ