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);
 }
Beispiel #5
0
        public void Test7()
        {
            var result = GenericConstraintReverser.GetVariant(typeof(OutInterfaceT <>).GetGenericArguments()[0]);

            Assert.Equal("out T", result);
        }
Beispiel #6
0
        public void Test4()
        {
            var result = GenericConstraintReverser.GetTypeConstraints(typeof(ClassNewT <>));

            Assert.Equal("where T : class, new() ", result);
        }
Beispiel #7
0
        public void Test5()
        {
            var result = GenericConstraintReverser.GetTypeConstraints(typeof(UnmanagedT <>));

            Assert.Equal("where T : unmanaged ", result);
        }
Beispiel #8
0
        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);
 }