Jon*_*Jon 2 .net c# this static-classes
我想创建一个具有流畅界面的静态类,但我收到错误:
'this'在静态属性中无效,方法......
这是我的代码:
public static MyClass
{
private static StringBuilder builder;
private static StringBuilder RouteBuilder
{
get
{
if (builder == null)
builder = new StringBuilder();
return builder;
}
}
public static MyClass Root()
{
RouteBuilder.Append("/");
return this;
}
public static MyClass And()
{
RouteBuilder.Append("and");
return this;
}
public static MyClass Something()
{
RouteBuilder.Append("something");
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
这使我能够做到 MyClass.Root().And().Something();
有没有办法做到这一点或解决方法?
Dar*_*rov 12
那是不可能的.您不能拥有静态类的实例.由于您已将MyClass标记为静态,因此不能有任何实例.不要让它静止:
public class MyClass
{
private StringBuilder builder;
private StringBuilder RouteBuilder
{
get
{
if (builder == null)
builder = new StringBuilder();
return builder;
}
}
public MyClass Root()
{
RouteBuilder.Append("/");
return this;
}
public MyClass And()
{
RouteBuilder.Append("and");
return this;
}
public MyClass Something()
{
RouteBuilder.Append("something");
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以链:
var result = new MyClass().Root().And().Something();
Run Code Online (Sandbox Code Playgroud)