public string GetScript() { StringBuilder builder = new StringBuilder(); if (_types.Count > 0 || _enums.Count > 0) { foreach (var item in _enums) { if (item == ConstraintFlags.Class || item == ConstraintFlags.Struct) { builder.Insert(0, GenericConstraintReverser.GetConstraint(item) + ","); } else { builder.Append(GenericConstraintReverser.GetConstraint(item) + ","); } } foreach (var item in _types) { builder.Append(item.GetDevelopName() + ","); } builder.Insert(0, $"where {_typeName} : "); builder.Length -= 1; } return(builder.ToString()); }
public void Test8() { var result = GenericConstraintReverser.GetVariants(typeof(InOutInterfaceT<,>)); var result1 = GenericConstraintReverser.GetTypeConstraints(typeof(InOutInterfaceT<,>)); Assert.Equal("in T", result[0]); Assert.Equal("out S", result[1]); Assert.Equal("where T : notnull, NatashaUT.Model.G2, NatashaUT.Model.G3, NatashaUT.Model.G4, new() where S : NatashaUT.Model.G2, NatashaUT.Model.G3, NatashaUT.Model.G4, new() ", result1); }
public T ConstraintFrom <TConstraint>() { Constraint(GenericConstraintReverser.GetTypeConstraints <TConstraint>()); return(Link); }
public T ConstraintAppendFrom(Type type) { ConstraintAppend(GenericConstraintReverser.GetTypeConstraints(type)); return(Link); }
public void Test7() { var result = GenericConstraintReverser.GetVariant(typeof(OutInterfaceT <>).GetGenericArguments()[0]); Assert.Equal("out T", result); }
public void Test4() { var result = GenericConstraintReverser.GetTypeConstraints(typeof(ClassNewT <>)); Assert.Equal("where T : class, new() ", result); }
public void Test5() { var result = GenericConstraintReverser.GetTypeConstraints(typeof(UnmanagedT <>)); Assert.Equal("where T : unmanaged ", result); }
public void Test2() { var result = GenericConstraintReverser.GetTypeConstraints(typeof(StructT <>)); Assert.Equal("where T : struct ", result); }
public void Test9() { var result = GenericConstraintReverser.GetTypeConstraints(typeof(NotNull<>)); Assert.Equal("where T : notnull, new() ", result); }