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