在C#中,使用init
块的等价物是构造函数。在Java中,匿名内部类是一种简化的方式来创建一个实现了某个接口的类的实例。然而,C#没有直接的匿名内部类的概念。
在C#中,你可以使用委托和lambda表达式来实现类似的功能。但是,为了模拟Java匿名内部类的功能,你可以创建一个类,并在其构造函数中初始化所需的成员变量。
例如,假设你有一个Java接口MyInterface
,其中有一个方法myMethod()
,你可以在C#中创建一个类MyClass
,并在其构造函数中初始化成员变量:
public class MyClass
{
private Action myMethod;
public MyClass(Action myMethod)
{
this.myMethod = myMethod;
}
public void InvokeMyMethod()
{
myMethod();
}
}
然后,你可以使用lambda表达式创建一个MyClass
实例,并传递一个方法作为参数:
var myInstance = new MyClass(() => Console.WriteLine("Hello, world!"));
myInstance.InvokeMyMethod();
这将输出"Hello, world!",类似于Java中的匿名内部类。
需要注意的是,这只是一个简化的示例,实际应用中可能需要更复杂的逻辑。
领取专属 10元无门槛券
手把手带您无忧上云