C# | COBOL | VB.NET |
---|---|---|
public class Generics { IPoint<long> point; ConstrainedPoint<PointImpl> cPoint; Point<string, string> justAPoint; public void Init() { // initialize generic variables point = new PointImpl(); cPoint = new ConstrainedPoint<PointImpl>(); justAPoint = new Point<string, string>(); // use generic variables point.MakePoint(1, 2, 3); cPoint.MakeConstrainedPoint(point); justAPoint.VarT = "VarT's value"; justAPoint.VarN = "VarN's value"; } } |
*> Consuming a generic method via type inference class-id Generics public. 01 point type IPoint[binary-double]. 01 constrainedPoint type ConstrainedPoint[type PointImpl]. 01 justAPoint type Point[string, string]. method-id init. *> initialize generic variables set point = new PointImpl() set constrainedPoint = new ConstrainedPoint[type PointImpl]() set justAPoint = new Point[string, string]() *> use generic variables invoke point::makePoint(1, 2, 3) invoke constrainedPoint::makeConstrainedPoint(point) set justAPoint::varT to "varT's value" set justAPoint::varN to "varN's value" end method. end class. |
Public Class Generics Private point As IPoint(Of Long) Private cPoint As ConstrainedPoint(Of PointImpl) Private justAPoint As Point(Of String, String) Public Sub Init() ' initialize generic variables point = new PointImpl() cPoint = new ConstrainedPoint(Of PointImpl)() justAPoint = new Point(Of String, String)() ' use generic variables point.MakePoint(1, 2, 3) cPoint.MakeConstrainedPoint(point) justAPoint.VarT = "VarT's value" justAPoint.VarN = "VarN's value" End Sub End Class ' Generic interface Interface IPoint(Of T) Sub MakePoint(x As T, y As T, z As T) End Interface |
C# | COBOL | VB.NET |
---|---|---|
// Generic interface interface IPoint<T> { void MakePoint(T x, T y, T z); } // Generic class class Point<T, N> { public T VarT; public N VarN; } // Generic class with constraints class ConstrainedPoint<T> where T : IPoint<long> { public void MakeConstrainedPoint<N>(N x) where N : IPoint<long> { } } // Class with generic interface class PointImpl : IPoint<long> { public void MakePoint(long x, long y, long z) { } } |
*> Generic interface interface-id IPoint using T method-id makePoint using T (x as T, y as T, z as T). end method. end interface. *> Generic class class-id Point using T, N. 01 varT T public. 01 varN N public. end class. *> Generic class with constraints class-id ConstrainedPoint using T. constraints. constrain T implements type IPoint[binary-double]. method-id makeConstrainedPoint using N (x as N). constraints. constrain N implements type IPoint[binary-double]. end method. end class. *> Class with generic interface class-id PointImpl implements type IPoint[binary-double]. method-id makePoint using T (x as T, y as T, z as T). end method. end class. |
' Generic interface Interface IPoint(Of T) Sub MakePoint(x As T, y As T, z As T) End Interface ' Generic class Class Point(Of T, N) public VarT As T public VarN As N End Class ' Generic class with constraints Class ConstrainedPoint(Of T As IPoint(Of Long)) Public Sub MakeConstrainedPoint(Of N As IPoint(Of Long))(x As N) End Sub End Class ' Class with generic interface Class PointImpl Implements IPoint(Of Long) Public Sub MakePoint(x As Long, y As Long, z As Long) _ Implements IPoint(Of Long).MakePoint End Sub End Class |