可以强制使用派生类来实现特定的函数。
现在,是否可以对类的每个实例分别执行相同的操作?(可能是在调用构造函数(比如动态重写Java )时)
// on-the-fly override sample @Java
progressBar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});p.s:我只想为它创建一个实例。在这种情况下没有子类。
发布于 2018-07-31 06:33:54
实例不能实现接口,只有类可以实现。在Java中,这也是不可能的。相反,在后面创建一个匿名类,该类派生于基类,该类作为基类的一个实例出现。
为了在C#中实现类似的功能,您可以使用一个委托并在您的类的宇航员中提供它:
class MyClass
{
Action<T> TheAction { get; private set; }
public MyClass(Action<T> doSomething() { this.TheAction = doSomething; }
}现在您可以为每个实例提供不同的行为。
var i1 = new MyClass(x => Console.WriteLine(x));
var i2 = new MyClass(x => DoSomething(x));不过,我不明白你为什么需要这个。要启用进度栏的单击事件,只需执行以下操作:
myProgressBar.Click += (sender, args) => { /* what ever */ };或者:
myProgressBar.Click += MyMethod;使用
MyMethod(object sender, EventArgs args) { /* what ever */ }发布于 2018-07-31 06:24:52
https://stackoverflow.com/questions/51606489
复制相似问题