using System.Threading; namespace ScreenConnect; public class GreatGreatGrandchildRunContext : GreatGrandchildRunContext, IConvertible where TGreatGreatGrandparentRunContext : RunContext where TGreatGrandparentRunContext : ChildRunContext where TGrandparentRunContext : GrandchildRunContext where TParentRunContext : GreatGrandchildRunContext { public GreatGreatGrandchildRunContext(TParentRunContext parentRunContext, params CancellationToken[] auxiliaryCancellationTokens) : base(parentRunContext, auxiliaryCancellationTokens) { } TGreatGreatGrandparentRunContext IConvertible.Convert() { return base.Parent.Parent.Parent.Parent; } public static implicit operator TGreatGreatGrandparentRunContext(GreatGreatGrandchildRunContext @this) { return @this.Parent.Parent.Parent.Parent; } }