public void 只命名() { ClassBuilder builder = CodeSyntax.CreateClass("Test"); var result = builder.ToFormatCode(); #if Log _tempOutput.WriteLine(result.WithUnixEOL()); #endif Assert.Equal(@"class Test { }", result.WithUnixEOL()); }
public void 完整的测试() { ClassBuilder builder = CodeSyntax.CreateClass("Test") .WithAccess(NamespaceAccess.Public) .WithGeneric(b => { b.WithCreate("T1").WithStruct() .WithCreate("T2").WithClass() .WithCreate("T3").WithNotnull() .WithCreate("T4").WithUnmanaged() .WithCreate("T5").WithNotnull() .WithCreate("T6").WithBase("Enum") .WithCreate("T7").WithBase("IEnumerable<int>") .WithCreate("T8").WithTo("T2") .WithCreate("T9").WithClass().WithNew() .WithCreate("T10").WithInterface("IEnumerator<int>", "IEnumerable<int>").WithNew(); }) .WithField("str", b => { b.WithAccess(MemberAccess.Public) .WithKeyword(FieldKeyword.Readonly) .WithType("string"); }) .WithProperty("Get", b => { b.WithAccess(MemberAccess.Public) .WithType("string") .WithGetSet("get { return str; }", string.Empty); }) .WithMethod("Method", b => { b.WithAccess(MemberAccess.Public) .WithReturnType("string") .WithBlock(@"return """";"); }); var result = builder.ToFormatCode(); #if Log _tempOutput.WriteLine(result.WithUnixEOL()); #endif Assert.Equal(@"public class Test<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> where T1 : struct where T2 : class where T3 : notnull where T4 : unmanaged where T5 : notnull where T6 : Enum where T7 : IEnumerable<int> where T8 : T2 where T9 : class, new() where T10 : IEnumerator<int>, IEnumerable<int>, new() { public readonly string str; public string Get { get { return str; } } public string Method() { return """"; } }", result.WithUnixEOL()); }